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 '%'+@modCOde+'%'
)NEW_SP ON OLD_SP.Id = NEW_SP.Id

クエリを実行すると、エラーは次のようになります。

マルチパート識別子「OLD_SP.Num」をバインドできませんでした。

なんで?

4

1 に答える 1

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 /* .... */
于 2012-11-07T07:57:44.273 に答える