次の方法で共有


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

SQL Server Management Studio には多くの一般的なタスク用のテンプレートが付属していますが、テンプレートの真の機能は、頻繁に作成する必要がある複雑なスクリプト用のカスタム テンプレートを作成できることにあります。 このプラクティスでは、パラメーターが少ない単純なスクリプトを作成しますが、テンプレートは長い繰り返しのスクリプトにも役立ちます。

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

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

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

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

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

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

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

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

  7. クエリ エディターで、次のスクリプトを入力して、特定のパーツ (この場合はブレード) の注文を検索するストアド プロシージャを作成します。 (チュートリアル ウィンドウからコードをコピーして貼り付けることができます)。

    USE AdventureWorks20012;  
    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 キーを押してクエリを実行します。 [結果] ウィンドウにブレードの作業指示書の一覧が返されることを確認します。

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

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

  12. これで、スクリプトは次のようになります。

    USE AdventureWorks20012;  
    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. テンプレート エクスプローラーで、[ ストアド プロシージャ] を展開し、[ カスタム] を展開して、[ WorkOrderProc] をダブルクリックします。

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

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

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

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

このレッスンの次の作業

スクリプトをプロジェクトまたはソリューションとして保存する