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

Sql server 如何使用visual studio 2012数据库项目避免循环引用,sql-server,visual-studio-2012,database-project,Sql Server,Visual Studio 2012,Database Project,我正在尝试在Visual Studio 2012中创建一个数据库解决方案 我有5个数据库,它们都存在于同一台服务器上,因此我已将每个数据库导入到一个数据库项目中 不幸的是,数据库中有相当多的对象引用其他数据库中的对象,因此我一直在尝试通过添加数据库引用来解决这些问题,以创建一个数据库变量来引用这些跨数据库实例 问题是我的数据库A引用了B,B也引用了A,它不允许我添加这两个引用。我收到一个消息框,上面写着“将此项目添加为引用将导致循环依赖” 关于解决这个问题的方法有什么想法吗?我想一种方法可能是为

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

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

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

问题是我的数据库A引用了B,B也引用了A,它不允许我添加这两个引用。我收到一个消息框,上面写着“将此项目添加为引用将导致循环依赖”

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


我们正在尝试设置自动构建,因此我确实需要编译数据库项目。

您将希望将数据库架构提取到dacpac文件中(假设您使用的是SSDT SQLProj文件,而不是项目的旧DBProj文件)。您可以通过SSMS或SQLPackage命令行执行此操作。提取后,将它们放在所有项目都可以访问的地方(最好仍然在源代码控制下,以便其他人可以引用)。将这些dacpac文件作为数据库引用添加到项目中,可能没有使用变量作为DB名称的选项

我在我的博客上写了添加数据库引用的文章:

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