如何从数据库中提取 DAC
使用**“提取数据层应用程序向导”**或 Windows PowerShell 脚本可以从现有 SQL Server 数据库提取数据层应用程序 (DAC) 包。 提取过程将创建一个 DAC 包文件,其中包含数据库对象及其相关实例级别元素的定义。 例如,一个 DAC 包文件包含数据库表、存储过程、视图、用户以及映射到数据库用户的登录名。
您可以从驻留在 SQL Azure 或者 SQL Server 2005 Service Pack 4 (SP4) 或更高版本的实例上的数据库中提取 DAC。
**“提取数据层应用程序向导”**不注册当前数据库引擎实例中的 DAC 定义。 有关注册 DAC 的详细信息,请参阅如何将数据库注册为 DAC。
使用 PowerShell 提取 DAC
生成和运行脚本
创建文件 ExtractDAC.ps1。
添加代码以便创建一个 SMO Server 对象,并且将该对象设置为包含您要从其提取 DAC 的数据库的实例。 该示例将服务器对象设置为本地计算机上的默认实例:
## Set a SMO Server object to the default instance on the local computer. CD SQLSERVER:\SQL\localhost\DEFAULT $srv = get-item .
添加代码以便指定该数据库。 此示例指定一个名为 MyDB 的数据库:
## Specify the database to extract to a DAC. $dbname = "MyDB"
为 DAC 指定元数据。 此示例指定 DAC 名称、版本和说明:
## Specify the DAC metadata. $applicationname = "MyApplication" $version = "1.0.0.0" $description = "This DAC defines the database used by my application."
指定提取的 DAC 包文件的路径和文件名。
## Specify the location and name for the extracted DAC package. $dacpacPath = "C:\MyDACs\MyApplication.dacpac"
添加代码以便使用上面指定的信息运行 Extract 方法。
## Extract the DAC. $extractionunit = New-Object Microsoft.SqlServer.Management.Dac.DacExtractionUnit($srv, $dbname, $applicationname, $version) $extractionunit.Description = $description $extractionunit.Extract($dacpacPath)
从您已加载了 SQL Server PowerShell 管理单元的 PowerShell 会话或者通过使用 sqlps 命令提示实用工具,运行 ExtractDAC.ps1。
提取数据层应用程序向导
打开“提取数据层应用程序向导”
在对象资源管理器中,展开**“数据库”,右键单击某个数据库,指向“任务”,然后单击“提取数据层应用程序”**。
按照向导中的步骤基于您选择的数据库创建一个 DAC 包。 有关详细信息,请参阅提取数据层应用程序向导 F1 帮助。
更改历史记录
更新的内容 |
---|
添加了有关使用 PowerShell 的部分。 |