创建自定义模板
SQL Server Management Studio 附带了用于许多常见任务的模板,但是模板的真正作用在于它能为必须频繁创建的复杂脚本创建自定义模板。在本练习中,您将创建带有较少参数的简单脚本,但是模板也适用于较长的重复脚本。
使用自定义模板
创建自定义模板
在模板资源管理器中,展开**“SQL Server 模板”,右键单击“存储过程”,指向“新建”,再单击“文件夹”**。
键入**“自定义”**作为新模板文件夹的名称,再按 Enter 键。
右键单击**“自定义”,指向“新建”,再单击“模板”**。
键入 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 中的脚本),使用参数 <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。
在**“连接到数据库引擎”对话框中,填写连接信息,再单击“连接”**。系统将打开新的“查询编辑器”窗口,其中包含 WorkOrderProc 模板的内容。
在**“查询”菜单中,单击“指定模板参数的值”**。
在**“替换模板参数”对话框中,为 product_name 值键入 FreeWheel(覆盖默认内容),再单击“确定”以关闭“替换模板参数”**对话框,并在查询编辑器中修改脚本。
按 F5 键执行查询,并创建过程。