在单个解决方案中将SSDT 2010(最新更新,v10.3.21208.0)与多个数据库项目一起使用时,出现错误。该错误读取以下内容:

SQL71561: View: [dbo].[View] has an unresolved reference to object [OtherDatabase].[dbo].[OtherTable]
我已经阅读了我可以在Stack Overflow和Google上找到的所有其他资源。这是我已经尝试过的一些方法:
  • 设置数据库将引用到解决方案中的其他项目。
  • 清除了数据库变量选项,以绕过SQLCLR变量,该变量根据配置选项动态更改数据库名称。
  • 确保在所有项目上均禁用了启用对公共对象的扩展Transact-SQL验证
  • 数据库位置选项设置为:不同数据库,同一服务器
  • 确保项目构建订单在逻辑上安排了
  • 尝试了this的建议

  • 似乎对我没有任何帮助。任何帮助将非常感激。这是一个屏幕截图,可以进一步阐明我的问题:

    最佳答案

    已经有一段时间了,但是我仍然想与其他可能与我最初失去链接的人分享此解决方案。请密切注意步骤4。这为我解决了问题。

    一种可能的解决方案是将数据库引用添加到缺少对象的数据库。该引用需要一个数据层应用程序(dacpac文件),该数据层应用程序可以使用缺少对象的数据库项目在解决方案上轻松生成。在数据库项目上选择鼠标右键,然后选择“快照项目”。 dacpac文件在Snapshots文件夹中创建。然后,应将文件复制到公共文件夹中以重新使用。

    在出现错误的项目中,在“引用”上选择鼠标右键,然后选择Add Database Reference。出现Add Database Reference对话框:

  • 选择dacpac文件
  • 选择数据库位置。最常见的选项是“不同的数据库,同一台服务器”
  • 确认数据库名称字段与预期的一样
  • 清除对话框中的“数据库变量”字段。如果此字段具有值,那么查询必须使用此变量,而不是数据库名称
  • 07-26 08:51
    查看更多