2010-09-15 82 views
0

SQL Server新手在這裏。無法綁定多部分標識符 - 更新查詢SQL Server 2005

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. 

是什麼造成的錯誤?

更新:以上查詢是反覆試驗的結果。我正在將Access應用程序更新到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'))); 

這給了錯誤 - 關鍵字附近有語法錯誤「內部」

感謝

回答

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') 
+0

+1,這應該解決您的問題。如果您對爲什麼看起來如此不同而感到困惑,請閱讀表格別名。 – 2010-09-15 15:01:43

1

你沒有指定更新還採用了Approved表的任何地方,而不是你先走一步,使用一個如果它的列。

另一方面,您的更新看起來在邏輯上也有缺陷,因爲您將更新ObjectivesApproved記錄,而不管它們包含哪些記錄,即ObjectivesApprovedApproved之間沒有提到關係。

相關問題