SQL Server Management Studio には多くの一般的なタスク用のテンプレートが付属していますが、テンプレートの真の機能は、頻繁に作成する必要がある複雑なスクリプト用のカスタム テンプレートを作成できることにあります。 このプラクティスでは、パラメーターが少ない単純なスクリプトを作成しますが、テンプレートは長い繰り返しのスクリプトにも役立ちます。
カスタム テンプレートの使用
カスタム テンプレートを作成するには
テンプレート エクスプローラーで、[ SQL Server テンプレート] を展開し、[ ストアド プロシージャ] を右クリックし、[ 新規作成] をポイントして、[フォルダー] をクリック します。
新しいテンプレート フォルダーの名前として 「Custom」 と入力し、Enter キーを押します。
[ カスタム] を右クリックし、[ 新規作成] をポイントして、[ テンプレート] をクリックします。
新しいテンプレートの名前として 「WorkOrdersProc 」と入力し、 Enter キーを押します。
WorkOrdersProc を右クリックし、[編集] をクリックします。
[ データベース エンジンへの接続 ] ダイアログ ボックスで、接続情報を確認し、[ 接続] をクリックします。
クエリ エディターで、次のスクリプトを入力して、特定のパーツ (この場合はブレード) の注文を検索するストアド プロシージャを作成します。 (チュートリアル ウィンドウからコードをコピーして貼り付けることができます)。
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'; GOF5 キーを押してこのスクリプトを実行し、 WorkOrdersForBlade プロシージャを 作成します。
オブジェクト エクスプローラーで、サーバーを右クリックし、[ 新しいクエリ] をクリックします。 新しいクエリ エディター ウィンドウが開きます。
クエリ エディターで EXECUTE dbo.WorkOrdersForBlade と入力し、F5 キーを押してクエリを実行します。 [結果] ウィンドウにブレードの作業指示書の一覧が返されることを確認します。
テンプレート スクリプト (手順 7 のスクリプト) を編集し、製品名 Blade をパラメーター product_name<product_name、
nvarchar(50)、 name> に 4 か所で置き換えます。注
パラメーターには、置換するパラメーターの名前、パラメーターのデータ型、およびパラメーターの既定値の 3 つの要素が必要です。
これで、スクリプトは次のようになります。
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[ ファイル ] メニューの [ WorkOrdersProc.sql保存 ] をクリックしてテンプレートを保存します。
カスタム テンプレートをテストするには
テンプレート エクスプローラーで、[ ストアド プロシージャ] を展開し、[ カスタム] を展開して、[ WorkOrderProc] をダブルクリックします。
[ データベース エンジンへの接続 ] ダイアログ ボックスで、接続情報を入力し、[ 接続] をクリックします。 WorkOrderProc テンプレートの内容を含む新しいクエリ エディター ウィンドウが開きます。
[クエリ] メニューの [テンプレート パラメーターの値の指定] をクリックします。
[ テンプレート パラメーターの置換 ] ダイアログ ボックスで、
product_name値に 「FreeWheel 」と入力し (既定の内容を上書き)、[ OK ] をクリックして [ テンプレート パラメーターの置換 ] ダイアログ ボックスを閉じ、クエリ エディターでスクリプトを変更します。F5 キーを押してクエリを実行し、プロシージャを作成します。