sql >> データベース >  >> RDS >> Sqlserver

SQL Server 2005 Management Studio で SQL Server 2005 ストアド プロシージャ テンプレートを作成する方法を教えてください。

    私が考えるもう 1 つの小さなナゲットは、人々が開発し、データベース開発の生産性を高めるのに役立つと思います。ソフトウェア ソリューションを開発するときは、ストアド プロシージャと関数のファンです。実際の CRUD メソッドをデータベース レベルで実装するのが好きです。これにより、アプリケーション ソフトウェア (ビジネス ロジックとデータ アクセス) とデータベース自体の間で作業のバランスをとることができます。宗教戦争を始めたくはありませんが、人々がストアド プロシージャをより迅速に、テンプレートを使用してベスト プラクティスを使用して開発できるようにしたいと考えています。

    SQL Server 2005 Management Studio で独自のテンプレートを作成することから始めましょう。まず、Studio でテンプレート エクスプローラーを表示する必要があります。

    代替テキスト http://www.cloudsocket.com/images/image-thumb10.png

    これにより、以下が表示されます:

    代替テキスト http://www.cloudsocket.com/images/image-thumb11.png

    代替テキスト http://www.cloudsocket.com/images/image-thumb12.png

    代替テキスト 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
    


    1. MySql単一テーブル、過去7日間を選択し、空の行を含める

    2. 子供のパーティーのデータモデル

    3. SUM(IF())MySQLへのORの取得方法

    4. MySQLのGROUP_CONCATとLongtextの問題