2

我开始学习用于 Visual Studio 2013 的 SSDT-BI,我们使用另一个应用程序使用的预先存在的第三方数据库(我们将添加到这个现有数据库作为我们工作的一部分)。

DACPAC 能否仅更新某些数据库对象(“如果不存在,删除并创建...”),还是必须包含整个数据库?

我基本上是在寻找替换我们现有的脚本(所有这些基本上都是“如果对象存在,则删除对象,然后创建对象”)并使用 SSDT-BI 的一些功能,如编译、源代码控制、更好的部署包等. 并且想知道在我使用的现有数据库场景下这是否可能。到目前为止,我所做的一切都导致 DACPAC 删除并重新创建了整个数据库,这不是我们想要的。

对于我们如何使用 BI 工具实现这一目标的任何帮助或见解将不胜感激。

4

1 回答 1

2

默认情况下,如果您使用 SSDT SQL 项目和 dacpacs,则不应删除并重新创建数据库中的每个对象。发布时有一个启用此选项的选项,但如果您在发布时点击选项和/或保存为发布配置文件,则很容易禁用。

SSDT 会将您的数据库作为 SQL 文件存储在包含表、函数、过程、用户等文件夹的结构中。从那里它将读取预期的结构,在发布时生成 dacpac,将该 dacpac 与实际数据库进行比较,然后制作数据库看起来像项目。这将导致根据需要添加/删除/重命名对象。(尽管您确实可以选择在项目中找不到对象时不删除它们 - 我发现这对于生产版本来说更安全一些。)

我已经写了很多关于 SSDT 的博客(感谢许多其他帮助我入门的人),这些文章可能会对您有所帮助。它们实际上不是“BI”工具,只是直接使用 SSDT 而不是 SSDT-BI。MS 没有很好地命名这些工具集,他们承认至少将 SSIS/SSAS 工具调整为 SSDT-BI。:)

http://schottsql.blogspot.com/2013/10/all-ssdt-articles.html

于 2014-06-24T22:57:00.337 回答