【问题标题】:How do you create SQL Server 2005 stored procedure templates in SQL Server 2005 Management Studio?如何在 SQL Server 2005 Management Studio 中创建 SQL Server 2005 存储过程模板?
【发布时间】:2010-09-09 01:29:51
【问题描述】:

如何在 SQL Server 2005 Management Studio 中创建 SQL Server 2005 存储过程模板?

【问题讨论】:

    标签: sql-server sql-server-2005 stored-procedures


    【解决方案1】:

    我认为另一个小块可以帮助人们开发并提高数据库开发的效率。在开发软件解决方案时,我是存储过程和函数的粉丝。我喜欢在数据库级别实现我的实际 CRUD 方法。它允许我在应用程序软件(业务逻辑和数据访问)和数据库本身之间平衡我的工作。不想引发一场宗教战争,但我想让人们通过模板更快地开发存储过程并使用最佳实践。

    让我们从在 SQL Server 2005 management Studio 中制作您自己的模板开始。首先,您需要在 Studio 中显示 Template Explorer。

    alt text http://www.cloudsocket.com/images/image-thumb10.png

    这将显示以下内容:

    alt text http://www.cloudsocket.com/images/image-thumb11.png

    alt text http://www.cloudsocket.com/images/image-thumb12.png

    alt text http://www.cloudsocket.com/images/image-thumb13.png

    IDE 将创建一个空白模板。要编辑模板,请右键单击模板并选择编辑。您将在 IDE 中获得一个空白查询窗口。您现在可以插入您的模板实现。我这里有新存储过程的模板,其中包含一个 TRY CATCH。我喜欢在我的存储过程中包含错误处理。随着 SQL Server 2005 中 TSQL 新增的 TRY CATCH 功能,我们应该尝试通过我们的代码(包括数据库代码)来使用这种强大的异常处理机制。保存模板,您就可以使用新模板创建存储过程了。

    -- ======================================================
    -- Create basic stored procedure template with TRY CATCH
    -- ======================================================
    
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author:        <Author,,Name>
    -- Create date: <Create Date,,>
    -- Description:    <Description,,>
    -- =============================================
    CREATE PROCEDURE <Procedure_Name, sysname, ProcedureName>
        -- Add the parameters for the stored procedure here
        <@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
        BEGIN TRY
            BEGIN TRANSACTION    -- Start the transaction
    
            SELECT @p1, @p2
    
            -- If we reach here, success!
            COMMIT
        END TRY
        BEGIN CATCH
            -- there was an error
            IF @@TRANCOUNT > 0
            ROLLBACK
    
            -- Raise an error with the details of the exception
            DECLARE @ErrMsg nvarchar(4000), @ErrSeverity int
            SELECT @ErrMsg = ERROR_MESSAGE(), @ErrSeverity = ERROR_SEVERITY()
    
            RAISERROR(@ErrMsg, @ErrSeverity, 1)
        END CATCH
    GO
    

    【讨论】:

    • 有没有办法将该模板设为 sproc 模板的默认值?
    【解决方案2】:

    您使用 Ctrl+Alt+T 或通过 View > Template Explorer 调出 Template Explorer。然后您可以右键单击树节点添加新模板或新文件夹来组织您的新模板。

    【讨论】:

      【解决方案3】:

      Database=>Table=>Programmability=>Procedures=>右键选择新程序

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多