次の方法で共有


カスタム テンプレートの作成

SQL Server Management Studio には、一般的な作業のためのテンプレートが多数用意されていますが、テンプレートの真価は、頻繁に作成する複雑なスクリプトに適したカスタム テンプレートを作成できる点にあります。この演習では、2 ~ 3 のパラメータを使用した簡単なスクリプトを作成しますが、規模が大きく、反復的なスクリプトを作成する場合にもテンプレートが役立ちます。

カスタム テンプレートの使用

カスタム テンプレートを作成するには

  1. テンプレート エクスプローラで [SQL Server テンプレート] を展開します。[Stored Procedure] を右クリックし、[新規作成] をポイントして [フォルダ] をクリックします。

  2. 新しいテンプレート フォルダの名前として「Custom」と入力し、Enter キーを押します。

  3. [Custom] を右クリックし、[新規作成] をポイントして [テンプレート] をクリックします。

  4. 新しいテンプレートの名前として「WorkOrdersProc」と入力し、Enter キーを押します。

  5. [WorkOrdersProc] を右クリックし、[編集] をクリックします。

  6. [データベース エンジンへの接続] ダイアログ ボックスで接続情報を確認し、[接続] をクリックします。

  7. クエリ エディタに次のスクリプトを入力し、特定の部分 (この例では Blade) の命令を検索するストアド プロシージャを作成します (チュートリアル ウィンドウからコードをコピーして、貼り付けることができます)。

    USE AdventureWorks;
    GO
    IF EXISTS (
    SELECT * 
       FROM INFORMATION_SCHEMA.ROUTINES 
       WHERE SPECIFIC_NAME = 'WorkOrdersForBlade')
       DROP PROCEDURE dbo.WorkOrdersForBlade
    GO
    CREATE PROCEDURE dbo.WorkOrdersForBlade
    AS
    SELECT Name, WorkOrderID 
    FROM Production.WorkOrder AS WO
    JOIN Production.Product AS Prod
    ON WO.ProductID = Prod.ProductID
    WHERE Name = 'Blade';
    GO
    
  8. F5 キーを押してこのスクリプトを実行し、WorkOrdersForBlade プロシージャを作成します。

  9. オブジェクト エクスプローラでサーバーを右クリックし、[新しいクエリ] をクリックします。新しいクエリ エディタ ウィンドウが開きます。

  10. クエリ エディタに「EXECUTE dbo.WorkOrdersForBlade」と入力し、F5 キーを押してクエリを実行します。[結果] ペインに、Blade の作業命令の一覧が返されていることを確認します。

  11. テンプレート スクリプト (手順 7. のスクリプト) を編集します。4 つの場所で、製品名 Blade をパラメータ <product_name, nvarchar(50), name> に置き換えます。

    注意注意

    パラメータには、置き換えるパラメータの名前、パラメータのデータ型、パラメータの既定値の 3 つの要素が必要です。

  12. スクリプトは以下のようになります。

    USE AdventureWorks
    GO
    IF EXISTS (
    SELECT * 
       FROM INFORMATION_SCHEMA.ROUTINES 
       WHERE SPECIFIC_NAME = 'WorkOrdersFor<product_name, nvarchar(50), name>')
       DROP PROCEDURE dbo.WorkOrdersFor<product_name, nvarchar(50), name>
    GO
    CREATE PROCEDURE dbo.WorkOrdersFor<product_name, nvarchar(50), name>
    AS
    SELECT Name, WorkOrderID 
    FROM Production.WorkOrder AS WO
    JOIN Production.Product AS Prod
    ON WO.ProductID = Prod.ProductID
    WHERE Name = '<product_name, nvarchar(50), name>';
    GO
    
  13. [ファイル] メニューの [WorkOrdersProc.sql の保存] をクリックし、テンプレートを保存します。

カスタム テンプレートをテストするには

  1. テンプレート エクスプローラで [Stored Procedure][Custom] の順に展開し、[WorkOrderProc] をダブルクリックします。

  2. [データベース エンジンへの接続] ダイアログ ボックスで接続情報を指定し、[接続] をクリックします。新しいクエリ エディタ ウィンドウが開き、WorkOrderProc テンプレートの内容が表示されます。

  3. [クエリ] メニューの [テンプレート パラメータの値の指定] をクリックします。

  4. [テンプレート パラメータの置換] ダイアログ ボックスで、product_name の値として「FreeWheel」と入力します (既定の内容を上書きします)。次に、[OK] をクリックして [テンプレート パラメータの置換] ダイアログ ボックスを閉じ、クエリ エディタのスクリプトを更新します。

  5. F5 キーを押してクエリを実行し、プロシージャを作成します。