12

我很难弄清楚如何使用 Visual Studio 2012 实际创建甚至打开 DAC 应用程序。我使用的是 SQL Server 2012。我安装了 SSDT。

从 Visual Studio 创建:

根据在线文档,我应该能够看到一个名为“数据层应用程序”的项目模板,但我看到的只是 SQL Server 数据库项目。他们是一样的吗?

从 SSMS 创建:

在一个在线视频中,演示者正在使用 SSMS -> 数据库 -> 右键单击​​ -> 创建项目菜单项,在向导之后会弹出一个 VS 项目。我没有这个菜单项,我有的是任务-> 导出为数据层应用程序。这会创建 DACPAC 文件,但不会创建 VS 项目,我无法弄清楚如何从 VS 打开 dacpac。

4

1 回答 1

23

DACPAC 的目的是提供数据库架构的可移植表示,可用于将该架构部署到数据库,将其导入 Visual Studio 中的数据库项目,并用于 Schema Compare 等功能以检查两者之间的差异不同的来源。每当您在 Visual Studio 中构建数据库项目时,都会生成一个 .dacpac 文件,然后可以使用该文件将该项目中定义的架构部署到数据库。

获得完整信息的最佳位置是SSDT 帮助,但我会给你一个简短的总结。

如果你已经有一个 DACPAC,你可以在 VS 中通过以下方式使用它:

  • 通过右键单击解决方案资源管理器中的项目并选择“导入 -> 数据层应用程序 (*.dacpac)”,将架构导入项目。然后选择你的 dacpac,内容将被转换成 SQL Scripts 并添加到项目中
  • 通过打开 SQL Server 对象资源管理器、导航到服务器、右键单击数据库并选择“发布数据层应用程序...”将 dacpac 发布到数据库,这会将 DACPAC 的内容发布到该服务器上的数据库. 您可以通过右键单击“数据库”列表中的数据库来更新数据库。请注意,如果 SQL Server 对象资源管理器视图未打开,您可以选择“查看 -> SQL Server 对象资源管理器”以确保它出现。

要在 Visual Studio 中创建 DACPAC,您可以

  • 构建一个项目。这会在 bin\Debug 目录中创建一个 dacpac(假设您在调试模式下构建)。
  • 快照项目。这将创建一个 dacpac 并将其保存在项目中。跟踪数据库模式的时间点版本并将数据库的先前版本与最新定义进行比较非常有用。
  • 在 SQL Server 对象资源管理器中右键单击数据库并选择“提取数据层应用程序...”这将创建一个代表数据库内容的 dacpac。

最后,我不确定您观看的是什么视频,但他们可能显示在 SQL Server 对象资源管理器中右键单击数据库并从那里创建项目。这是使用数据库项目开始开发的一种非常常见的方式,因为通常您已经拥有一个包含您的模式的数据库。通常,最佳实践是使用项目进行开发,并在部署到不同环境(例如生产服务器)时使用 dacpacs(可能还有命令行部署工具,如 SqlPackage.exe)(同样,dacpacs 非常适合传输模式定义和部署它们不同的环境)。希望这有助于回答您的问题!

于 2013-12-27T18:39:27.670 回答