好的,有很多关于此的帖子,但问题的所有不同版本。我找不到我的特定(尽管是基本的)问题版本的帖子。首先,这些是我使用SQL Server数据工具(SSDT)在Visual Studio 2012(shell)中创建数据库项目所遵循的步骤:
这给了我一个SQL服务器数据库中所有对象的填充数据库项目。但是,在构建项目时,我得到了200多个未解析的引用错误:
X-包含对象的未解析引用。对象不存在或引用不明确,因为它可以引用以下任何对象:X,Y,Z
和
X-有一个未解析的对象
的引用
向Master添加数据库引用将错误减少到127,现在它更易于管理,但是没有解决。它只影响100个中的5个或10个对象。这里有一些要记住的事情:
SQL Server对象中仅使用一个数据库(视图等)
只有2部分命名即(dbo.Table as T)
我的VS 2012版本中没有“为常见对象启用扩展Transact-SQL验证”选项,Microsoft已删除此功能,并且该功能已关闭。
我运行了命令行sqlpackage.exe
并创建了数据库的dacpac,然后将其添加为数据库引用。
数据库项目仍然无法构建。错误仅适用于某些视图和过程。有谁有这个问题?
答案 0 :(得分:1)
好的,我发现了问题......
表中有些字段的名称用空格填充,即:
[Field1]
引用这些字段的视图,过程等等当然只使用没有填充的名称部分,即: FIELD1
该名称[Field1]实际上是错误的,真实姓名是[Field1]这导致架构中断。
棘手的部分是......他们仍在SQL Server中工作。虽然SQL Server在有错误的查询中显示这些字段名称,但它仍然能够成功处理查询!我觉得有一些设置已被关闭服务器端...无论如何,SQL Server应该永远不会允许这些语句成功运行并且问题会被捕获。