2012-11-07 76 views
0
Declare @modCode varchar(3) 
SET @modCOde = 'SOR'; 

UPDATE Doc_SalesOrder 
SET  OLD_SP.Num = NEW_SP.NewNum 
FROM Doc_SalesOrder as OLD_SP 
INNER JOIN 
(
    Select 
     Id, 
     dbo.ApplyModuleCode(@modCode,Num) as NewNum 
    From Doc_SalesOrder 
    Where Num not LIKE '%'[email protected]+'%' 
)NEW_SP ON OLD_SP.Id = NEW_SP.Id 

當我運行查詢的錯誤是:SQL更新選擇的多部分標識符「OLD_SP.Num」無法綁定

多部分標識符「OLD_SP.Num」不能約束。

爲什麼?

回答

4

使用

UPDATE OLD_SP 
SET  OLD_SP.Num = NEW_SP.NewNum 
FROM Doc_SalesOrder as OLD_SP /* .... */ 

或者只是滴在SET語句目標表前綴完全。這裏沒有歧義。

UPDATE Doc_SalesOrder 
SET  Num = NEW_SP.NewNum 
FROM Doc_SalesOrder as OLD_SP /* .... */ 
相關問題