Когда я пытаюсь настроить проект базы данных для SQL Server 2008 в VS2010, я продолжаю сталкиваться с ошибкой "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.