VS2010数据库项目中的SQL03006错误(SQL Server 2008)

时间:2011-05-30 06:37:15

标签: sql database visual-studio-2010 project

当我尝试在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。

1 个答案:

答案 0 :(得分:0)

SoftwareTable .ComputerID上的ComputerTable.ID加入ComputerID,这意味着我ComputerTable中没有ComputerTable.ComputerID列(CT别名)

除了ComputerTable.ID之外,你确实还有SoftwareTable列吗?哪个是[$(SomeOtherDatabaseName)]上的foriegn键的唯一键?

[$(SomeOtherDatabaseName)]位是我认为的红鲱鱼

编辑:

您的错误是由SQL Server查找数据库名称{{1}}

引起的

由于某种原因,VS没有受到损害。