建立自訂範本
SQL Server Management Studio 提供了許多一般工作的範本,但範本真正的威力,在於能夠建立您經常需要建立的複雜字集之自訂範本。在這個練習中,您將利用幾個參數來建立簡單的指令碼,但冗長而重複的指令碼也適合使用範本。
使用自訂範本
若要建立自訂範本
在 [範本總管] 中,展開 [SQL Server 範本],以滑鼠右鍵按一下 [預存程序],指向 [新增],再按一下 [資料夾]。
輸入 [Custom] 作為新範本資料夾的名稱,再按 ENTER 鍵。
以滑鼠右鍵按一下 [自訂],指向 [新增],再按一下 [範本]。
輸入 WorkOrdersProc 作為新範本的名稱,再按 Enter 鍵。
以滑鼠右鍵按一下 [WorkOrdersProc],再按一下 [編輯]。
在 [連接到 Database Engine] 對話方塊中,驗證連接資訊,再按一下 [連接]。
在 [查詢編輯器] 中,輸入下列指令碼來建立查閱特定零件的訂單之預存程序,這裡的零件是刀片 (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 鍵來執行查詢。請確認 [結果] 窗格會傳回刀片的工作訂單清單。
編輯範本指令碼 (第 7 步驟中的指令碼),在四個位置中,利用 <product_name、nvarchar(50)、name> 參數來取代產品名稱 Blade (刀片)。
附註: 參數具備三個元素:想要取代的參數名稱、參數的資料類型和參數的預設值。 現在,指令碼看起來應該如下:
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] 來儲存您的範本。
若要測試自訂範本
在 [範本總管] 中,展開 [預存程序],展開 [自訂],再按兩下 [WorkOrderProc]。
在 [連接到 Database Engine] 對話方塊中,填妥連接資訊,再按一下 [連接]。此時會開啟一個新的 [查詢編輯器] 視窗,其中含有 [WorkOrderProc] 範本的內容。
在 [查詢] 功能表上,按一下 [指定範本參數的值]。
在 [取代範本參數] 對話方塊,對於 [product_name] 值,請輸入 FreeWheel (覆寫預設內容),再按一下 [確定] 來關閉 [取代範本參數] 對話方塊,並修改 [查詢編輯器] 中的指令碼。
按 F5 鍵來執行這項查詢,建立程序。