カスタム テンプレートの作成
SQL Server Management Studio には、一般的な作業のためのテンプレートが多数用意されていますが、テンプレートの真価は、頻繁に作成する複雑なスクリプトに適したカスタム テンプレートを作成できる点にあります。この演習では、2 ~ 3 のパラメータを使用した簡単なスクリプトを作成しますが、規模が大きく、反復的なスクリプトを作成する場合にもテンプレートが役立ちます。
カスタム テンプレートの使用
カスタム テンプレートを作成するには
テンプレート エクスプローラで [SQL Server テンプレート] を展開します。[Stored Procedure] を右クリックし、[新規作成] をポイントして [フォルダ] をクリックします。
新しいテンプレート フォルダの名前として「Custom」と入力し、Enter キーを押します。
[Custom] を右クリックし、[新規作成] をポイントして [テンプレート] をクリックします。
新しいテンプレートの名前として「WorkOrdersProc」と入力し、Enter キーを押します。
[WorkOrdersProc] を右クリックし、[編集] をクリックします。
[データベース エンジンへの接続] ダイアログ ボックスで接続情報を確認し、[接続] をクリックします。
クエリ エディタに次のスクリプトを入力し、特定の部分 (この例では 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
F5 キーを押してこのスクリプトを実行し、WorkOrdersForBlade プロシージャを作成します。
オブジェクト エクスプローラでサーバーを右クリックし、[新しいクエリ] をクリックします。新しいクエリ エディタ ウィンドウが開きます。
クエリ エディタに「EXECUTE dbo.WorkOrdersForBlade」と入力し、F5 キーを押してクエリを実行します。[結果] ペインに、Blade の作業命令の一覧が返されていることを確認します。
テンプレート スクリプト (手順 7. のスクリプト) を編集します。4 つの場所で、製品名 Blade をパラメータ <product_name, nvarchar(50), name> に置き換えます。
注意 パラメータには、置き換えるパラメータの名前、パラメータのデータ型、パラメータの既定値の 3 つの要素が必要です。
スクリプトは以下のようになります。
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
[ファイル] メニューの [WorkOrdersProc.sql の保存] をクリックし、テンプレートを保存します。
カスタム テンプレートをテストするには
テンプレート エクスプローラで [Stored Procedure]、[Custom] の順に展開し、[WorkOrderProc] をダブルクリックします。
[データベース エンジンへの接続] ダイアログ ボックスで接続情報を指定し、[接続] をクリックします。新しいクエリ エディタ ウィンドウが開き、WorkOrderProc テンプレートの内容が表示されます。
[クエリ] メニューの [テンプレート パラメータの値の指定] をクリックします。
[テンプレート パラメータの置換] ダイアログ ボックスで、product_name の値として「FreeWheel」と入力します (既定の内容を上書きします)。次に、[OK] をクリックして [テンプレート パラメータの置換] ダイアログ ボックスを閉じ、クエリ エディタのスクリプトを更新します。
F5 キーを押してクエリを実行し、プロシージャを作成します。