Не удалось связать многокомпонентный идентификатор - запрос на обновление SQL Server 2005 - PullRequest
0 голосов
/ 15 сентября 2010

SQL Server новичок здесь.

UPDATE dbo.ObjectivesApproved  
SET dbo.ObjectivesApproved.VAP = 'Y'
WHERE ((dbo.Approved.Cri_Group In ('X01' ,'X02' ,'X03' ,'X04' ,'X05' ,'X07' ,'X08' ,'X09' ,'X10' ,'X11' ,'X12' ,'X13' ,'X14')))

выдает следующую ошибку

The multi-part identifier "dbo.Approved.Cri_Group" could not be bound.

В чем причина ошибки?

Обновление: Вышеуказанный запрос был результатом проб и ошибок. Я обновляю приложение доступа к серверу SQL, и у меня возникают проблемы с немного отличающимися диалектами SQL

Это мой оригинальный запрос.

UPDATE dbo.Approved 
INNER JOIN dbo.ObjectivesApproved ON dbo.Approved.ID = dbo.ObjectivesApproved.ID 
SET dbo.ObjectivesApproved.VAP = 'Y'
WHERE ((dbo.Approved.Cri_Group 
In ('X01' ,'X02' ,'X03' ,'X04' ,'X05' ,'X07' ,'X08' ,'X09' ,'X10' ,'X11' ,'X12' ,'X13' ,'X14')));

Это дает ошибку - Неверный синтаксис рядом с ключевым словом 'INNER'

спасибо

Ответы [ 2 ]

5 голосов
/ 15 сентября 2010

Это будет означать

UPDATE
    OA
SET
    OA.VAP = 'Y'
FROM
    dbo.Approved AS A
    INNER JOIN dbo.ObjectivesApproved OA ON A.ID = OA.ID
WHERE
    A.Cri_Group IN ('X01' ,'X02' ,'X03' ,'X04' ,'X05' ,'X07' ,'X08' ,'X09' ,'X10' ,'X11' ,'X12' ,'X13' ,'X14')
1 голос
/ 15 сентября 2010

Вы не указываете, что обновление также где-либо использует таблицу Approved, вместо этого вы просто идете вперед и используете один, если его столбцы.

С другой стороны, ваше обновление выглядит логически некорректным, как и выОбновим записи ObjectivesApproved независимо от того, что они содержат, т. е. между ObjectivesApproved и Approved.

нет упоминания.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...