在 SQL Server Management Studio 中编写对象脚本

本教程介绍如何为 SQL Server Management Studio(SSMS)中找到的各种对象生成 Transact-SQL(T-SQL)脚本。 在本教程中,可以找到有关如何编写以下对象的脚本的示例:

  • 在图形用户界面中执行操作时的查询
  • 数据库采用两种不同的方式(脚本方式和生成脚本)
  • 表格
  • 存储过程
  • 扩展事件

若要在 对象资源管理器中编写任何对象的脚本,请右键单击它,然后选择“ 脚本对象为 ”选项。 本教程介绍该过程。

先决条件

若要完成本教程,需要 SQL Server Management Studio、针对运行 SQL Server 的服务器的访问权限以及 AdventureWorks 数据库。

此处提供在 SSMS 中还原数据库的说明:还原数据库。

通过 GUI 编写查询脚本

每当使用 SSMS 中的 GUI 完成任务时,都可以为任务生成关联的 T-SQL 代码。 以下示例演示如何在备份数据库和收缩事务日志时执行此作。 这些步骤可以应用于通过 GUI 完成的任何操作。

备份数据库时编写 T-SQL 脚本

  1. 连接到运行 SQL Server 的服务器。

  2. 展开“数据库”节点。

  3. 右键单击数据库 AdventureWorks2022>任务>备份

    备份数据库

  4. 按所需方式配置备份。 对于本教程,默认情况下会保留所有内容。 但是,窗口中所做的任何更改也会反映在脚本中。

  5. 选择脚本>将脚本操作到新查询窗口

    脚本数据库备份 - 脚本操作

  6. 查看在查询窗口中填充的 T-SQL。

    编写数据库备份脚本 --review T-SQL

  7. 选择 “执行 ”以执行查询以通过 T-SQL 备份数据库。

收缩事务日志时编写 T-SQL 脚本

  1. 右键单击数据库 AdventureWorks2022>任务>收缩>文件

    收缩文件

  2. “文件类型”下拉列表框中选择日志

    缩小事务日志

  3. 选择 脚本将脚本操作复制到剪贴板

    复制脚本到剪贴板

  4. 打开 “新建查询” 窗口并粘贴。 (在窗口中右键单击。然后选择 “粘贴”。)

    粘贴脚本

  5. 选择 “执行 ”以执行查询并收缩事务日志。

脚本数据库

以下部分介绍如何使用 “脚本方式 ”和 “生成脚本 ”选项编写数据库脚本。 使用 生成脚本 选项可以重新创建数据库及其配置选项。 可以使用 “生成脚本 ”选项编写架构和数据脚本。 在本部分中,将创建两个新数据库。 使用 “编写为脚本” 选项创建 AdventureWorks2022a。 使用 “生成脚本 ”选项创建 AdventureWorks2022b

使用“脚本”选项编写数据库脚本

  1. 连接到运行 SQL Server 的服务器。

  2. 展开“数据库”节点。

  3. 右键单击数据库 AdventureWorks2022>脚本数据库作为>新建>查询编辑器窗口

    脚本数据库

  4. 在窗口中查看数据库创建查询:

    Scripted-out 数据库 此选项仅脚本化数据库配置选项。

  5. 在键盘上,选择 Ctrl+F 以打开 “查找 ”对话框。 选择向下箭头以打开 “替换 ”选项。 在顶部 “查找 ”行中,键入 AdventureWorks2022,在底部 的“替换 ”行中键入 AdventureWorks2022a。

  6. 选择 “全部替换” ,将 AdventureWorks2022 的所有实例替换为 AdventureWorks2022a

    查找和替换

  7. 选择 “执行 ”以执行查询并创建新的 AdventureWorks2022a 数据库。

使用“生成脚本”选项编写数据库脚本

  1. 连接到运行 SQL Server 的服务器。

  2. 展开“数据库”节点。

  3. 右键单击 AdventureWorks2022>任务>生成脚本

    为数据库生成脚本

  4. “简介”页随即打开 。 选择 “下一步 ”以打开 “选择对象 ”页。 可以选择数据库中的整个数据库或特定对象。 选择“编写整个数据库及所有数据库对象的脚本” 。

    为对象生成脚本

  5. 选择“下一步”以打开“设置脚本编写选项”页面 。 可以在此处配置用于保存脚本的位置和一些其他高级选项。

    a。 选择保存到新查询窗口

    b. 选择 “高级 ”并确保设置以下选项:

    • 脚本统计信息 设置为 脚本统计信息
    • 将要脚本的数据类型设置为 仅架构
    • 脚本索引 设置为 True

    脚本对象

    注释

    当您选择要编写脚本的数据类型选项为架构和数据时,可以为数据库编写数据脚本。 但是,对于大型数据库,这并不理想。 它可能需要比 SSMS 分配更多的内存。 对于小型数据库,此限制是可以的。 如果要移动较大数据库的数据,请使用 导入和导出向导

  6. 选择“确定”,然后选择“下一步”

  7. 摘要上选择“下一步”。 然后再次选择 “下一步 ”,在 “新建查询” 窗口中生成脚本。

  8. 在键盘上,打开 “查找 ”对话框(Ctrl+F)。 选择向下箭头以打开 “替换 ”选项。 在顶部 “查找” 行中,输入 AdventureWorks2022。 在底部替换行中,输入AdventureWorks2022b

  9. 选择 “全部替换 ”,将 AdventureWorks2022 的所有实例替换为 AdventureWorks2022b

    AdventureWorks 2016

  10. 选择 “执行 ”以执行查询并创建新的 AdventureWorks2022b 数据库。

脚本表

本部分介绍如何从数据库编写表的脚本。 使用此选项可以创建表或删除表并重新创建表。 还可以使用此选项编写与修改表关联的 T-SQL 脚本。 例如,要插入它或对其进行更新。 在本部分中,将删除一个表,然后重新创建它。

  1. 连接到运行 SQL Server 的服务器。

  2. 展开 “数据库” 节点。

  3. 展开 AdventureWorks2022 数据库节点。

  4. 展开 “表” 节点。

  5. 右键单击 dbo。ErrorLog>脚本表作为>DROP 和 CREATE 到>新的查询编辑器窗口

    脚本表

  6. 选择 “执行 ”以执行查询。 此操作会删除 Errorlog 表并重新创建它。

    注释

    默认情况下, Errorlog 表在 AdventureWorks2022 数据库中为空。 因此,不会通过删除表来丢失任何数据。 但是,对包含数据的表执行这些步骤会导致数据丢失。

编写存储过程脚本

本部分介绍如何删除和创建存储过程。

  1. 连接到运行 SQL Server 的服务器。

  2. 展开 “数据库” 节点。

  3. 展开您的可编程性节点

  4. 展开 存储过程 节点。

  5. 右键单击存储过程 dbo.uspGetBillOfMaterials>脚本存储过程作为>DROP 和 CREATE 到>新建查询编辑器窗口

    编写存储过程脚本

编写扩展事件的脚本

本部分介绍如何编写 扩展事件的脚本。

  1. 连接到运行 SQL Server 的服务器。

  2. 展开 管理 节点。

  3. 展开 扩展事件 节点。

  4. 展开会话节点。

  5. 右键单击您感兴趣的扩展会话,然后选择脚本会话作为>创建为>新查询编辑器窗口

    扩展的新查询编辑器窗口会话

  6. “新建查询编辑器”窗口中,将会话的新名称从 system_health 修改为 system_health2。 选择 “执行 ”以执行查询。

  7. 对象资源管理器中右键单击“会话”。 选择 “刷新 ”以查看新的扩展事件会话。 会话旁边的绿色图标指示会话正在运行。 红色图标指示会话已停止。

    新的扩展事件会话

    注释

    可以通过右键单击会话并选择 “开始”来启动会话。 但是,这是已运行的 system_health 会话的副本,因此可以跳过此步骤。 可以删除扩展事件会话的副本:右键单击它并选择“ 删除”。

后续步骤

熟悉 SSMS 的最佳方法是通过实践实践。 这些 教程操作指南 文章可帮助你了解 SSMS 中提供的各种功能。 这些文章介绍如何管理 SSMS 的组件,以及如何查找定期使用的功能。