如何避免使用visual studio 2012数据库项目的循环引用

jaz*_*000 11 sql-server database-project visual-studio-2012

我正在尝试在Visual Studio 2012中创建数据库解决方案.

我有5个数据库都存在于同一台服务器上,因此我将每个数据库导入到数据库项目中.

遗憾的是,数据库中有相当多的对象引用其他数据库中的对象,因此我一直在尝试通过添加数据库引用来创建数据库引用以引用这些跨数据库实例来解决这些问题.

问题是我有数据库A引用B和B引用A,它不允许我添加这两个引用.我收到消息框说"添加此项目作为参考将导致循环依赖".

有关解决此问题的方法的任何想法?我想有一种方法可能是为每个数据库创建一个解决方案,但是如果有更好的方法,我宁愿不这样做.

我们正在尝试建立一个自动构建,所以我真的需要编译数据库项目.

Pet*_*ott 13

您需要将数据库模式提取到dacpac文件中(假设您使用的是SSDT SQLProj文件而不是项目的旧DBProj文件).您可以通过SSMS或SQLPackage命令行执行此操作.一旦被提取,将它们放在所有项目都可以命中的某个地方(最好是仍然受源代码控制,所以其他人都可以引用它).将这些dacpac文件作为数据库引用添加到项目中,可能没有为DB Name使用变量的选项.

我在我的博客上写了添加数据库参考:http: //schottsql.blogspot.com/2012/10/ssdt-external-database-references.html

另外一个注意事项 - 如果您从这些项目构建新数据库,您可能需要经历多次通过.关闭选项以作为事务运行,并在出现错误时失败,以便创建一些对象,根据需要重复,直到创建所有对象.我在我的项目中使用了一个名为"DeployType"的变量,并设置我的前后部署脚本以不同方式处理DeployType为"New",因此它不会尝试填充/更新"New"构建的任何数据.