6

我刚刚开始涉足 SSDT 并且已经遇到了问题。

我的解决方案由 2 个数据库组成。两个数据库都使用同义词相互引用。因此,就 SSDT 而言,我们有循环引用。

我知道这种安排的设计问题,因此无需对此发表评论,也无需建议对数据库本身进行结构更改。这是一个现有的系统,我无权从结构上改变它。

我也知道 SSDT 不允许循环引用的事实。这里有一个解决方法(http://social.msdn.microsoft.com/Forums/en-US/ssdt/thread/5fd12f01-54e6-4e7d-b7e2-14fa9df9a7ef)。它建议将 DB1 拆分为 2 个项目 DB1 和 DB1a,例如其中 DB1a 引用 DB1 和 DB2,并使 DB2 引用 DB1。但我不确定如何在不实际创建额外数据库的情况下对其进行配置。

我在想我唯一的选择是将其保留为 2 个项目,但将它们设置为忽略未解决的引用。

4

1 回答 1

4

正如评论中提到的,我建议在两个现有数据库项目中的任何一个中将触发器强制部署为部署后脚本。

请注意,通过这样做,您将无法在 SSDT 数据库项目中对触发器本身进行任何引用(除非这些对象也包含在部署后脚本中)。不确定是否确实存在可能依赖于触发器的对象类型,但我认为无论如何值得一提:)。

于 2012-09-27T17:28:52.353 回答