我在 Visual Studio 2013 中创建了一个 SQL Server 数据库项目,并导入了一个从生产数据库中获取的 DACPAC。当我尝试构建项目时,我收到数百个 SQL71501 和 SQL71561 错误(这两个都是“ Unresolved 对象引用”)。检查脚本,问题在于许多 View 和存储过程使用三个部分名称:[数据库].[模式].[对象]。
似乎 Visual Studio 2013 遇到包含由数据库项目表示的数据库的三部分名称时会引发此错误。例如,如果数据库项目代表数据库“MyDatabase”并且该项目中的 SQL 脚本包含类似 SELECT t.Column1 FROM MyDatabase.dbo.MyTable t
的内容。然后 VS 2013 在我构建项目时抛出 SQL71501 或 SQL71561。
有什么方法可以抑制仅适用于当前数据库的 Unresolved reference 错误?我仍然希望 Visual Studio 为 Unresolved external 数据库引用引发错误。
编辑,更正:最初声明错误代码是SQL71501。但是,对于 Unresolved 对同一数据库的引用,Visual Studio 似乎同时引发了 SQL71501 和 SQL71561 错误。
最佳答案
那么实际上有两种解决方法。我个人的看法是,SSDT 中存在与当前数据库中的 3 部分对象名称有关的错误。
它可以工作,但是 Microsoft 不推荐这种方法,并且可能会导致其他问题:
https://connect.microsoft.com/SQLServer/feedbackdetail/view/1047094/post-deployment-script-is-not-generated-in-the-publish-script
https://social.msdn.microsoft.com/Forums/sqlserver/en-US/1863d960-d32d-4920-9a30-13dc86c6f857/sql71562-unresolved-reference-to-object-followd-by-database-name-in-the-same-project?forum=ssdt&prof=required
关于visual-studio-2013 - 对同一数据库项目的未解决引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25716756/