【发布时间】:2011-05-30 06:37:14
【问题描述】:
当我尝试在 VS2010 中为 SQL Server 2008 设置数据库项目时,我一直遇到错误“SQL03006 - xyz 列包含对对象的未解析引用。对象不存在或引用不明确,因为它可能引用以下任何对象..."
原始代码的一个示例如下:
CREATE VIEW [dbo].[vwSomeView]
AS
SELECT
CT.ID,
CT.UserName,
ST.Title
FROM
SomeOtherDatabase.dbo.ComputerTable CT
JOIN
SomeOtherDatabase.dbo.SoftwareTable ST ON
CT.ID = ST.ComputerID
现在错误仅指例如列 CT.UserName,而不是 CT.ID。我还添加了对“SomeOtherDatabase”的相应数据库引用,并按照我在寻找解决方案时发现的几篇帖子的建议更新了代码:
CREATE VIEW [dbo].[vwSomeView]
AS
SELECT
CT.ID,
CT.UserName,
ST.Title
FROM
[$(SomeOtherDatabaseName)].dbo.ComputerTable CT
JOIN
[$(SomeOtherDatabaseName)].dbo.SoftwareTable ST ON
CT.ID = ST.ComputerID
我不明白为什么 CT 表中的一列有问题,而另一列却没有。当我查看数据库项目中的表定义时,一切似乎都很好,因为列在那里(如预期的那样)。
我也不太确定我是否可以在定义后通过别名来引用表名,即我在编写“CT.ComputerID”而不是“[$(SomeOtherDatabaseName)].dbo 时遇到问题。 ComputerTable”(我不这么认为,但是我一直遇到很多错误,以至于我现在感觉有点迷茫)。
感谢任何正确方向的指针,谢谢。
更新
实际的错误信息是这样的:
SQL03006: View: [dbo].[vwSomeView] contains an unresolved reference to an object. Either the object does not exist or the reference is ambiguous because it could refer to any of the following objects: [$(SomeOtherDatabaseName)].[dbo].[ComputerTable]::[ID] or [$(SomeOtherDatabaseName)].[dbo].[SoftwareTable]::[ID]"
G.
【问题讨论】:
-
您能发布与您发布的代码匹配的实际消息吗?为什么在您提供代码后清理错误:或者您也给我们清理过的代码......?
-
这是一个比原始代码更简洁的修改版本,尽管希望仍能显示我遇到的一般问题。如果需要的话,我想我可以用合适的代码设置一个完整的例子来创建数据库和表,但这可能需要更多的代码。
标签: sql database visual-studio-2010 project