在 SQL Server Management Studio 中编写对象脚本
本教程将指导如何为 SQL Server Management Studio (SSMS) 中找到的各种对象生成 Transact-SQL (T-SQL) 脚本。 本教程提供如何编写以下对象的脚本的示例:
- 在 GUI 中执行操作时的查询
- 两种不同方式(“脚本编写为”和“生成脚本”)的数据库
- 表
- 存储过程
- 扩展的事件
要为“对象资源管理器” 中的任何对象编写脚本,请右键单击它并选择“编写对象脚本为” 选项。 本教程将介绍该过程。
必备条件
若要完成本教程,需要 SQL Server Management Studio、针对运行 SQL Server 的服务器的访问权限以及 AdventureWorks 数据库。
此处提供在 SSMS 中还原数据库的说明:还原数据库。
从 GUI 编写查询脚本
无论何时在 SSMS 中使用 GUI 来完成任务,都可以为任务生成关联的 T-SQL 代码。 以下示例演示如何在备份数据库和收缩事务日志时执行此操作。 可以向通过 GUI 完成的任何操作应用这些相同的步骤。
备份数据库时编写 T-SQL 脚本
连接到运行 SQL Server 的服务器。
展开 “数据库” 节点。
右键单击数据库“AdventureWorks2022”>“任务”>“备份”:
按照所需方式配置备份。 对于本教程,所有内容均保留默认值。 但是,在窗口中进行的任何更改都会反映在脚本中。
选择 “脚本”> “将操作脚本保存到‘新建查询’窗口”:
查看查询窗口中填充的 T-SQL。
选择“执行”以执行查询,以便通过 T-SQL 备份数据库 。
在收缩事务日志时编写 T-SQL 脚本
右键单击数据库“AdventureWorks2022”>“任务”>“收缩”>“文件”:
从“文件类型”下拉列表框中选择“日志”:
选择“脚本”和“将操作脚本保存到剪贴板” :
打开一个“新建查询”窗口并粘贴 。 (在窗口中右键单击。然后选择“粘贴”。)
选择“执行”以执行查询和收缩事务日志 。
编写数据库脚本
以下部分介绍如何使用“脚本编写为”选项和“生成脚本”选项编写数据库脚本 。 “脚本编写为”选项将重新创建数据库及其配置选项 。 通过使用“生成脚本”选项,可编写架构和数据的脚本 。 在本部分中,你将创建两个新数据库。 可以使用“脚本编写为”选项来创建“AdventureWorks2022a”。 可以使用“生成脚本”选项来创建“AdventureWorks2022b”。
使用脚本选项为数据库编写脚本
连接到运行 SQL Server 的服务器。
展开 “数据库” 节点。
右键单击数据库“AdventureWorks2022”>“编写数据库脚本为”>“创建到”>“新建查询编辑器窗口”:
在窗口中查看数据库创建查询:
此选项仅脚本化数据库配置选项。
在键盘上选择 Ctrl+F 以打开 “查找”对话框。 选择向下箭头以打开“替换” 选项。 在顶部的“查找”行中键入“AdventureWorks2022”,在底部的“替换”行中键入“AdventureWorks2022a”。
选择“全部替换”,将所有“AdventureWorks2022”实例替换为“AdventureWorks2022a”。
选择“执行”以执行查询并创建新的 AdventureWorks2022a 数据库。
使用生成脚本选项为数据库编写脚本
连接到运行 SQL Server 的服务器。
展开 “数据库” 节点。
右键单击“AdventureWorks2022”>“任务”>“生成脚本”:
“简介”页随即打开 。 选择“下一步”以打开“选择对象”页面 。 可选择整个数据库或数据库中的特定对象。 选择“编写整个数据库及所有数据库对象的脚本” 。
选择“下一步”以打开“设置脚本编写选项”页面 。 在此,你可以配置保存脚本的位置以及一些其他高级选项。
a. 选择“保存到新建查询窗口” 。
b.保留“数据库类型”设置,即设置为“共享”。 选择“高级”并确保已设置以下选项 :
- “编写统计信息脚本”设置为“编写统计信息脚本” 。
- “要编写脚本的数据的类型”设置为“仅限架构” 。
- “编写索引脚本”设置为“True” 。
注意
如果为“要编写脚本的数据的类型”选项选择“架构和数据”,可以为数据库的数据编写脚本 。 但是,这对于大型数据库来说并不是理想之选。 它可能需要比 SSMS 分配更多的内存。 这个限制也适用于小型数据库。 如果要移动大型数据库的数据,请使用导入和导出向导。
选择“确定” ,然后选择“下一步” 。
在“摘要”页上,请选择“下一步” 。 然后再次选择“下一步”,以将脚本生成到“新建查询”窗口 。
在键盘上打开 “查找”对话框 (Ctrl+F)。 选择向下箭头以打开“替换” 选项。 在顶部的“查找”行中,输入“AdventureWorks2022”。 在底部的“替换”行中,输入“AdventureWorks2022b”。
选择“全部替换”以将所有“AdventureWorks2022”实例替换为“AdventureWorks2022b”。
选择“执行”以执行查询并创建新的 AdventureWorks2022b 数据库。
编写表脚本
本部分介绍如何编写数据库中表的脚本。 使用此选项可以创建表或删除和创建表。 通过此选项,还可以编写与修改表相关的 T-SQL 脚本。 例如,插入或更新表。 在此部分中,将删除表,然后重新创建它。
连接到运行 SQL Server 的服务器。
展开“数据库”节点 。
展开“AdventureWorks2022”数据库节点。
展开“表”节点 。
右键单击“dbo.ErrorLog”>“编写表脚本为”>“删除并创建到”>“新建查询编辑器窗口”:
选择“执行”以执行该查询 。 此操作将删除 Errorlog 表并重新创建它。
注意
默认情况下,
AdventureWorks2022
数据库中的“错误日志”表为空。 所以,删除表并不会丢失任何数据。 但是,对包含数据的表执行这些步骤会导致数据丢失。
编写存储过程脚本
此部分介绍如何删除并创建存储过程。
连接到运行 SQL Server 的服务器。
展开“数据库”节点 。
展开“可编程性”节点 。
展开“存储过程”节点 。
右键单击存储过程“dbo.uspGetBillOfMaterials”>“编写存储过程脚本为”>“删除并创建到”>“新建查询编辑器窗口”:
编写扩展事件脚本
本部分介绍如何编写扩展事件脚本。
连接到运行 SQL Server 的服务器。
展开“管理”节点 。
展开“扩展事件”节点 。
展开“会话”节点 。
右键单击感兴趣的扩展会话 >“编写会话脚本为”>“CREATE 到”>“新建查询编辑器窗口”:
在“新建查询编辑器窗口”中,将新的会话名称从 system_health 修改为 system_health2 。 选择“执行”以执行该查询 。
在“对象资源管理器”中右键单击“会话” 。 选择 “刷新”以查看新的扩展事件会话。 会话旁边的绿色图标表示会话正在运行。 红色图标表示会话已停止。
注意
可通过右键单击会话并选择“开始”来开始会话 。 但是,由于这是已经在运行的 system_health 会话的副本,可跳过此步骤 。 可以删除扩展事件会话的副本:右键单击扩展事件会话副本并选择“删除” 。
后续步骤
熟悉 SSMS 的最好方式是进行实践演练。 这些教程 和操作说明 文章可帮助你使用 SSMS 的各种功能。 这些文章教你如何管理 SSMS 组件,以及如何查找常用功能。