zoukankan      html  css  js  c++  java
  • SQL模板资源管理器,你用了吗?

    SQL Server Management Studio 有个模板资源管理器,不知你用过没有?使用模板创建脚本、自定义模板等功能能大大提高你的工作效率,如果没有尝试过,赶紧去试试吧。很多时候,我们习惯了手写脚本,而不愿意花费精力去研究陌生的工具。

     

     

    你可以在通过下面方式打开模板资源管理器  视图->模板资源管理器; 也可以通过快捷键CTRL + ALT + T打开它。如图所示,你可以看见里面已经包含了许多模板了。

     

     

     

    你可以点击任何一个模板,查看它的属性,就可以知道这些模板存储在那个地方了,我本地数据的模板存储在C:\Documents and Settings\Administrator\Application Data\Microsoft\Microsoft SQL Server\100\Tools\Shell\Templates\Sql  目录下面

    模板资源管理器下有SQL Server模板、Analysis Services模板、SQL Server Compact Edition模板三种类型。

    在创建自己的模板前,我们来看看系统提供的一些模板打开目录Stored Procedure,选择Create Procedure Basic Template 双击打开,如下图所示

    Create Procedure Basic Template
    -- =============================================
    -- Create basic stored procedure template
    -- =============================================

    -- Drop stored procedure if it already exists
    IF EXISTS (
      
    SELECT * 
        
    FROM INFORMATION_SCHEMA.ROUTINES 
       
    WHERE SPECIFIC_SCHEMA = N'<Schema_Name, sysname, Schema_Name>'
         
    AND SPECIFIC_NAME = N'<Procedure_Name, sysname, Procedure_Name>' 
    )
       
    DROP PROCEDURE <Schema_Name, sysname, Schema_Name>.<Procedure_Name, sysname, Procedure_Name>
    GO

    CREATE PROCEDURE <Schema_Name, sysname, Schema_Name>.<Procedure_Name, sysname, Procedure_Name>
        
    <@param1, sysname, @p1> <datatype_for_param1, , int> = <default_value_for_param1, , 0>
        
    <@param2, sysname, @p2> <datatype_for_param2, , int> = <default_value_for_param2, , 0>
    AS
        
    SELECT @p1@p2
    GO

    -- =============================================
    -- Example to execute the stored procedure
    -- =============================================
    EXECUTE <Schema_Name, sysname, Schema_Name>.<Procedure_Name, sysname, Procedure_Name> <value_for_param1, , 1><value_for_param2, , 2>
    GO

    然后你在查询菜单下选择“指定模板参数的值”,快捷键(CTRL + SHIFT + M),弹出如下窗台,你可以定义存储过程名、参数以及参数的默认值等(如下图所示),

     

    定义完后,单击确定,就可以得到如下你想要的存储过程基本定义,然后填写自己的逻辑代码,避免了从头开始一步一步重写。减少不必要的重复劳动。最重要的是它能灵活的定义你自己想要的模板名称。下面来看看一步步定义自己的模板。如图所示:我们首先新建一个名为“Kerry Stored Procedure”的文件夹,然后点击文件夹,新建名为“Create Procedure Basic Template”的模板

     

  • 右键单击新模板,然后单击“编辑”。在“连接到数据库引擎”对话框中,单击“连接”在查询编辑器中打开新模板。

  • 在查询编辑器中创建一个脚本。按照 <parameter_name, data_type, value> 格式在脚本中插入参数。数据类型和数据值区域必须存在,但是可以为空。

  • 在工具栏上,单击“保存”以保存新模板。

    这样一个新的模板就建立了,如下所示

    自定义的存储过程模板
    USE [MyAssistant]
    GO

    SET ANSI_NULLS ON
    GO

    SET QUOTED_IDENTIFIER ON
    GO

    IF OBJECT_ID('<Procedure_Name>', N'P'IS NOT NULL 
    BEGIN
        
    DROP PROC <Procedure_Name>;
    END
    GO

    --====================================================================================================
    --        Function             :        ...........................
    --        Author                :        Kerry
    --        Create    Date        :        2010-08-11
    --        Description           :        ...........................。
    ------------------------------------------------------------------------------------------------------
    --        2010-08-12                    修改了.....删除了..........    
    --====================================================================================================
    CREATE PROCEDURE <Schema_Name, sysname, Schema_Name>.<Procedure_Name, sysname, Procedure_Name>
        
    <@param1, sysname, @p1> <datatype_for_param1, , int> = <default_value_for_param1, , 0>
        
    <@param2, sysname, @p2> <datatype_for_param2, , int> = <default_value_for_param2, , 0>
    AS

    SET NOCOUNT ON;
    BEGIN TRY


    END TRY

    BEGIN CATCH
        
    SELECT   ERROR_NUMBER()        AS ErrorNumber  
                ,ERROR_SEVERITY()      AS ErrorSeverity
                ,ERROR_STATE()         AS ErrorState
                ,ERROR_PROCEDURE()     AS ErrorProcedure
                ,ERROR_LINE()          AS ErrorLine
                ,ERROR_MESSAGE()       AS ErrorMessage;
    END CATCH

    GO
  • 当你要定义一个存储过程的时候,就可以像上面那样创建一个新的存储过程,当然,如果你不习惯上面哪种定义参数的方式,你也可以用下面的方式,把存储过程名、参数等命名为一个特定的存储过程,新建存储过程时、手动在打开的模板里面修改。如下所示,这个可以视个人习惯而定。

    代码
    USE [MyAssistant]
    GO

    SET ANSI_NULLS ON
    GO

    SET QUOTED_IDENTIFIER ON
    GO

    IF OBJECT_ID('USP_StoreProcedureName', N'P'IS NOT NULL 
    BEGIN
        
    DROP PROC USP_StoreProcedureName;
    END
    GO

    --====================================================================================================
    --        Function              :        ...........................
    --        Author                :        Kerry
    --        Create    Date        :        2010-08-11
    --        Description           :        ...........................。
    ------------------------------------------------------------------------------------------------------
    --        2010-08-12                    修改了.....删除了..........    
    --====================================================================================================
    CREATE PROCEDURE [dbo].[USP_StoreProcedureName]
        
    @StartTime            DATETIME,
        
    @EndTime              DATETIME,
        
    @CstartTime           DATETIME,
        
    @CendTime             DATETIME
    AS
    SET NOCOUNT ON;

    BEGIN TRY


    END TRY

    BEGIN CATCH
        
    SELECT   ERROR_NUMBER()        AS ErrorNumber  
                ,ERROR_SEVERITY()      AS ErrorSeverity
                ,ERROR_STATE()         AS ErrorState
                ,ERROR_PROCEDURE()     AS ErrorProcedure
                ,ERROR_LINE()          AS ErrorLine
                ,ERROR_MESSAGE()       AS ErrorMessage;
    END CATCH

    GO

扫描上面二维码关注我
如果你真心觉得文章写得不错,而且对你有所帮助,那就不妨帮忙“推荐"一下,您的“推荐”和”打赏“将是我最大的写作动力!
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.
查看全文
  • 相关阅读:
    函数的重载 C++快速入门06
    PE格式详细讲解8 系统篇08|解密系列
    《零基础入门学习汇编语言》检测点,实验,课后题答案
    PE格式详细讲解9 系统篇09|解密系列
    C++输出输入小结 C++快速入门05
    使用XML生成菜单
    DNS解析过程详解
    Windows Azure 2.5天深度技术训练营 和 微软公有云发现之旅
    使用单例模式实现自己的HttpClient工具类
    android 反编译和防止被反编译。
  • 原文地址:https://www.cnblogs.com/kerrycode/p/1804718.html
  • Copyright © 2011-2022 走看看