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”附近的语法不正确
感谢
答案 0 :(得分:5)
那会转化为
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 :(得分:1)
您没有指定更新也在任何地方使用Approved
表,而是只使用其中的列。
另一方面,您的更新看起来也存在逻辑上的缺陷,因为您将更新ObjectivesApproved
条记录而不管它们包含哪些内容,即ObjectivesApproved
和Approved
之间没有提及任何关系。