生成脚本向导
适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
Analytics 平台系统(PDW)
本文介绍如何使用 生成脚本向导 创建脚本,以在 SQL Server、Azure SQL 数据库或 Azure SQL 托管实例的实例之间传输数据库。
可以在本地网络或 Azure SQL 中为 SQL Server 数据库生成脚本。 生成的脚本可以在另一个 SQL Server 实例或 Azure SQL 上运行。 可以为整个数据库创建脚本,或将其限制为特定对象。
有关使用生成脚本向导的更详细的教程,请参阅 教程:生成脚本向导。
先决条件
源数据库和目标数据库可以位于 Azure SQL 数据库或 Azure SQL 托管实例上,也可以是运行 SQL Server 2005 (9.x) 或更高版本的数据库引擎实例。
权限
生成脚本的最低权限是源数据库上 db_ddladmin 固定数据库角色的成员身份。
使用生成脚本向导
在 对象资源管理器中,展开包含要编写脚本的数据库的实例的节点。
右键单击要编写脚本的数据库,然后选择 任务>生成脚本。
完成向导对话框:
“简介”页
本页介绍生成脚本的步骤。
不再次显示此页面 - 下次启动 生成脚本向导时跳过此页面。
“选择对象”页
使用此页选择要包含在此向导生成的脚本中的对象。
脚本整个数据库选项 - 选择此选项可为数据库中的所有对象生成脚本,并包括数据库本身的脚本。
选择特定数据库对象 - 选择以限制向导,以便仅为所选数据库中的特定对象生成脚本:
“设置脚本选项”页
使用此页可以指定是否希望向导将脚本保存到所选位置。
选项 - 如果希望向导将脚本保存到所选位置,请选择 将脚本保存到特定位置。 以后,可以针对数据库引擎的实例或 SQL 数据库运行脚本。
将脚本保存到特定位置 - 将一个或多个 Transact-SQL 脚本文件保存到指定的位置。
另存为笔记本 - 将脚本保存到一个或多个.sql文件。 选择浏览按钮(...) 以指定文件的名称和位置。
另存为脚本文件 将脚本保存到一个或多个.sql文件。 选择浏览按钮 (...) 指定文件的名称和位置。 选中“覆盖现有文件”复选框,如果已存在同名文件,则进行替换。 选择 单个脚本文件 或 每个对象的一个脚本文件 指定脚本的生成方式。 选择 Unicode 文本 或 ANSI 文本 以指定应在脚本中使用的文本类型。
保存到剪贴板 - 将 Transact-SQL 脚本保存到剪贴板。
在新查询窗口中打开 - 将脚本生成到数据库引擎查询编辑器窗口。 如果未打开任何编辑器窗口,则会打开新的编辑器窗口作为脚本的目标。
高级 - 显示 高级选项 对话框,可在其中选择高级脚本选项。
“高级脚本选项”页
使用此页可以指定希望此向导如何生成脚本。 提供了许多不同的选项。 如果 数据库引擎类型中指定的 SQL Server 或 SQL 数据库版本不支持选项,则选项灰显。
选项 - 通过从每个选项右侧的可用设置列表中选择一个值来指定高级选项。
常规 - 以下选项适用于整个脚本。
ANSI 填充 - 在脚本中包含
ANSI PADDING ON
。 默认值为 False。追加到文件 - 当 True时,此脚本将被添加到 设置脚本选项 页上指定的现有脚本的末尾。 False时,新脚本将覆盖以前的脚本。 默认值为 false。
检查对象是否存在 - 当 True时,在为 SQL 对象生成创建语句之前添加存在检查。 例如:表、视图、函数或存储过程。
CREATE
语句包装在 IF 语句中。 如果知道目标干净,脚本会更简洁。 如果不希望目标上存在对象,则会出现错误。 默认值为 False。在错误 继续编写脚本 - False时,脚本在发生错误时停止。 当 True时,脚本将继续执行。 默认值为 False。
将 UDT 转换为基类型 - True时,用户定义的数据类型(UDDT)将转换为用于创建它们的基础数据类型。 当运行脚本的数据库中不存在 UDDT 时,请使用 True。 当 为假时,将使用 UDDT。 默认值为 False。
为依赖对象生成脚本 - 为执行所选对象的脚本时所需的任何对象生成脚本。 脚本整个数据库 选项的默认是 True,选择特定数据库对象的默认是 False。
包括描述性标题 - 当 True时,在脚本中添加描述性注释,将脚本拆分为每个对象的不同部分。 默认值是 False。
Include if NOT EXISTS - 当 True时,脚本包含一个语句来检查数据库中是否存在该对象,并且如果对象已存在,则不会尝试创建新对象。 默认值为 false。
包括系统约束名称 - False时,源数据库上自动命名的约束的默认值会自动重命名目标数据库。 当 True时,约束在源数据库和目标数据库上具有相同的名称。
包括不支持的语句 - False时,脚本不包含所选服务器版本或引擎类型不支持的对象语句。 当 True时,脚本包含不受支持的对象。 不受支持的对象的每个语句都有一个备注,提示需要先编辑该语句,然后才能针对所选的 SQL Server 版本或引擎类型运行脚本。 默认值是False。
使用架构限定对象名称 - 在创建对象时将架构名称包含在对象名称中。 默认值为 真。
脚本绑定 - 生成用于绑定默认对象和规则对象的脚本。 默认值为 False。 有关详细信息,请参阅 CREATE DEFAULT (Transact-SQL) 和 CREATE RULE (Transact-SQL)。
脚本排序规则 - 在脚本中包含排序规则信息。 默认值为 false。 有关详细信息,请参阅 排序规则和 Unicode 支持。
脚本默认值 - 包括用于在表列中设置默认值的默认对象。 默认值为 true。 有关详细信息,请参阅 为列指定默认值。
脚本删除和创建 - 当执行Script CREATE时,将包括 Transact-SQL 语句来创建对象。 当 脚本 DROP时,Transact-SQL 语句将被包括用于删除对象。 当 脚本运行 DROP 和 CREATE时,脚本中将包含 Transact-SQL 的 Drop 语句,随后为每个被脚本化的对象生成 Create 语句。 默认值为 脚本 CREATE。
脚本扩展属性 - 如果对象具有扩展属性,则包括脚本中的扩展属性。 默认值为 True。
引擎类型的脚本 - 创建可在 SQL 数据库或 SQL Server 数据库引擎实例的选定类型上运行的脚本。 指定类型不支持的对象不包括在脚本中。 默认值为源服务器的类型。
脚本,用于服务器版本 - 创建可在所选 SQL Server 版本上运行的脚本。 无法为早期版本编写新版本的新增功能脚本。 默认值为源服务器的版本。
脚本登录名 - 当要编写脚本的对象为数据库用户时,此选项将创建用户依赖的登录名。 默认值为 false。
脚本对象级权限 - 包括用于设置数据库中对象权限的脚本。 默认值为 False。
脚本统计信息 - 设置为 脚本统计信息时,此选项包括用于重新创建对象统计信息的
CREATE STATISTICS
语句。 脚本统计信息和直方图 选项还会创建直方图信息。 默认值为 不进行脚本统计。 有关详细信息,请参阅 CREATE STATISTICS (Transact-SQL)。脚本 USE DATABASE - 将
USE DATABASE
语句添加到脚本中。 若要确保在正确的数据库中创建数据库对象,请包括USE DATABASE
语句。 如果希望在其他数据库中使用该脚本,请选择 False 省略USE DATABASE
语句。 默认值为 True。 有关详细信息,请参阅 USE (Transact-SQL)。要编写脚本 的数据类型 - 选择要编写脚本的内容:仅 数据、仅 架构或两者。 默认值为仅 架构。
表/视图选项 - 以下选项仅适用于表或视图的脚本。
脚本更改跟踪 - 脚本更改跟踪(如果在源数据库上启用)或源数据库中的表。 默认值是 false。 有关详细信息,请参阅 关于更改跟踪(SQL Server)。
脚本检查约束 - 向脚本添加
CHECK
约束。 默认值为 True。CHECK
约束要求在表中输入的数据满足某些指定条件。 有关详细信息,请参阅 唯一约束和检查约束。脚本数据压缩选项 - 脚本数据压缩选项(如果已在源数据库上配置)或源数据库中的表。 有关详细信息,请参阅 数据压缩。 默认值为 False。
脚本外键 - 向脚本添加外键。 默认值为 true。 外键指示并约束表之间的关系。
脚本化全文索引 - 创建全文索引的脚本。 默认值为 False。
脚本索引 - 为创建索引编写脚本。 脚本整个数据库 选项的 默认值为 true,选择特定数据库对象False。 索引有助于快速查找数据。
创建主键的脚本 - 使用脚本在表上生成主键。 默认值为 True。 主键用于唯一识别表中的每一行。
用于创建触发器的脚本 - 脚本用于在表上创建 DML 触发器。 默认值为 False。 DML 触发器是在数据库服务器中发生数据操作语言(DML)事件时执行的动作。 有关详细信息,请参阅 DML 触发器。
脚本唯一键 - 脚本在表上创建唯一键。 唯一键可防止输入重复数据。 默认值为 True。 有关详细信息,请参阅 唯一约束和检查约束。
摘要页
本页汇总了在此向导中选择的选项。 若要更改选项,请选择“上一项”。 若要开始生成脚本,请选择 下一步。
检查您的选择 - 显示您为向导的每一页所做的选择。 展开节点以查看相应页面的选定选项。
“保存脚本”页
使用此页面来实时监控向导的进度。
详细信息 - 查看 操作列以查看向导进度。 向导生成脚本后,会将脚本保存到文件中。 完成上述每个步骤后,选择 结果 列中的值以查看相应步骤的结果。
保存报告 - 选择将向导进度的结果保存到文件中。
取消 - 选择在处理完成之前关闭向导,或在发生错误时关闭向导。
完成 - 可选择在处理完成后或出现错误时关闭向导。
保存脚本
如果所有设置都正确,则配置将成功完成。
在 Azure Synapse Analytics 上生成脚本
如果使用“脚本方式...”时生成的语法与 Azure Synapse Analytics 语法不同,或者收到错误消息,则可能需要在 SQL Server Management Studio 中将脚本选项设置为 Azure Synapse Analytics。
如何将默认脚本选项设置为 SQL 数据仓库
若要使用 Azure Synapse Analytics 语法编写对象脚本,请将默认脚本选项设置为 Azure Synapse Analytics,如下所示:
- 选择 工具,然后 选项。
- 选择 SQL Server 对象浏览器,并 脚本功能。
- 在 版本选项下,将 匹配脚本设置设置为源 为 False。
- 将 数据库引擎类型的脚本 设置为 Microsoft Azure SQL Database Edition。
- 对于 Azure Synapse Analytics 中的专用 SQL 池,请将数据库引擎版本的 脚本 设置为 Microsoft Azure SQL 数据仓库版本。
- 选择“确定”。
当 SQL 数据仓库不是默认脚本选项时,如何为 SQL 数据仓库生成脚本
如果将 Azure Synapse Analytics 设置为默认脚本选项,如前所示,则可以忽略这些说明。 但是,如果选择使用不同的默认脚本选项,可能会遇到错误。 若要避免错误,请按照以下步骤为 Azure Synapse Analytics 生成脚本:
- 在 对象资源管理器中,右键单击 数据库下的专用 SQL 池。
- 选择 生成脚本。
- 选择要编写脚本 的对象。
- 在 脚本选项中,选择 高级。 常规 集 下:
- 数据库引擎类型的脚本:Microsoft Azure SQL 数据库。
- 数据库引擎版本的脚本:Microsoft Azure SQL 数据仓库版本。
- 选择 保存脚本,然后 完成。
第 4 步中设置的选项不会被保存。 如果希望记住这些选项,请按照 如何将默认脚本选项设置为 SQL 数据仓库中的说明进行作。