适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Microsoft Fabric 预览版中的 SQL 数据库
提取过程创建一个 DAC 包文件(.dacpac
),其中包含数据库对象的定义及其相关的实例级元素。 例如, .dacpac
文件包含数据库表、存储过程、视图和用户,以及映射到数据库用户的登录名。 该文件 .dacpac
可用于将数据库部署到 SQL Server 或 Azure SQL 数据库的另一个实例,或者将数据库注册为当前实例中的数据层应用程序(DAC)。
提取.dacpac
的选项包括:
- SQL Server Management Studio 中的“提取数据层应用程序”向导(SSMS)
- SQL Server 数据工具
- SqlPackage 命令行实用工具
Permissions
.dacpac
提取至少需要ALTER ANY LOGIN
和数据库范围VIEW DEFINITION
权限,同时需要对sys.sql_expression_dependencies
具有SELECT
权限。 securityadmin 固定服务器角色的成员,如果也是 database_owner 固定数据库角色的成员,则有资格提取 。
sysadmin 固定服务器角色或名为sa
的内置 SQL Server 系统管理员帐户的成员也可以提取一个.dacpac
。
使用提取数据层应用程序向导
使用向导提取 DAC
- 在 对象资源管理器中,展开包含要从中提取数据库的实例的
.dacpac
节点。 - 展开“数据库”节点。
- 右键单击要从中提取
.dacpac
的数据库节点,指向 任务,然后选择 提取数据层应用程序... - 完成向导对话框:
向导简介页
此页描述用于提取数据层应用程序的各个步骤。
不要再次显示此页面。 - 选中复选框可阻止页面在将来显示。
下一步 > - 进入“选择方法”页。
取消 - 结束向导且不从数据层提取数据层应用程序。
选择数据页
选择要包含在数据层应用程序(DAC)包文件中的引用数据。 在 DAC 包中包括数据是可选的。 其中包括 .dacpac
与数据库相关的所有受支持的数据库对象和实例对象的架构。
您可以在 DAC 包文件中包含多达 10 MB 的引用数据。 但是,对于 DAC 中包含的表,它们可能不包含二进制大型对象(BLOB)数据类型,例如图像或 varchar(max)。 若要提取大量数据以转移到另一个数据库,应使用 SQL Server Integration Services、大容量复制实用工具或许多其他数据迁移方法之一。
数据库表 - 对于包含你要包括在 DAC 包中的数据的数据库表,在其旁边选中对应的复选框。 最多可以选择 10 个行数不超过 10,000 的表。
设置属性页
使用该向导页描述数据层应用程序 (DAC)。 这些属性用于标识 DAC,并有助于与其他应用程序区分开。
名称 - 此名称标识 DAC。 它可以不同于 DAC 包文件的名称,并且应描述您的应用程序。 例如,如果数据库用于财务应用程序,则可能需要命名 DAC Finance。
版本(使用 xx.xx.xx.xx,其中 x 是数字) - 标识 DAC 版本的数值。 在 Visual Studio 中,DAC 版本用于识别开发人员正在处理的具体 DAC 版本。 部署 .dacpac
后,版本存储在 msdb
数据库中,稍后可以在 SQL Server Management Studio 的 “数据层应用程序” 节点下查看。
说明: - 可选。 说明该 DAC。 当部署 .dacpac
时,其描述将存储在 msdb
数据库中,以后可以在 Management Studio 中的 数据层应用程序 节点下查看。
保存到 DAC 包文件(文件名中包括 .dacpac 扩展名): - 将 DAC 保存到某一 DAC 包文件,并且具有 .dacpac 扩展名。 选择 “浏览 ”按钮以指定文件的名称和位置。
覆盖现有文件 - 如果已存在同名的 DAC 包文件,则选中此复选框可以替换该文件。
验证和摘要页面
在此页上,向导将验证数据层应用程序(DAC)中是否支持所有数据库对象。 它还检查数据库对象之间的依赖关系,以便确定该组对象是否可以成功包括在 DAC 中。 之后,它会显示验证报告,并汇总了在此向导中选择的选项。 若要更改选项,请选择“上一项”。 若要开始提取 DAC,请选择“ 下一步”。
Note
如果 DAC 不支持一个或多个对象,则会禁用 “下一步 ”按钮,并且提取过程可能不会继续。 在这种情况下,建议删除不受支持的对象,然后再次运行此向导。
摘要 - 所选选项的摘要列在 DAC 属性下。 验证的结果在 “DAC 对象”下列出。 有三种类型的验证结果:
对象成功包括在 DAC 中:支持这些对象及其依赖关系,并且它们可以成功包括在 DAC 中。
DAC 中包含的对象带有警告:支持这些对象,但依赖于 DAC 中不支持的其他对象。
DAC 中不包含的对象:不支持这些对象,并且必须先从数据库中删除,然后才能成功提取 DAC。
验证过程将检查多个级别的依赖关系。 例如,如果某一存储过程依赖于使用不支持的 CLR 数据类型的表,则该存储过程将在 “对象包括在 DAC 中但具有警告”下列出。
如果 DAC 不支持一个或多个对象,则会禁用 “下一步 ”按钮,并且提取过程不会继续。 在这种情况下,建议删除不支持的对象,然后再次运行此向导。
保存报告 - 使你可以保存一个基于 HTML 的文件,该文件列出摘要中“DAC 对象”节点下的所有对象。 当 DAC 中不支持某些数据库对象时,此报表非常有用。 在尝试再次提取 DAC 之前,请使用报表更改或删除不支持的对象。
构建包页面
使用该页监视向导在提取数据层应用程序 (DAC) 时的进度。
操作 - 在“创建并保存 DAC 包文件”操作期间,向导从你的 SQL Server 数据库提取 DAC。 然后,一个 DAC 包将在内存中创建并保存到您指定的位置中。 选择 “结果 ”列中的链接以查看相应步骤的结果。
保存报告 - 选择将向导进度的结果保存到文件中。
完成 - 选择在处理完成后或发生错误后关闭向导。