Sql server 在Update语句的where条件下如何使用表变量
我的问题是:Sql server 在Update语句的where条件下如何使用表变量,sql-server,Sql Server,我的问题是: Declare @ParentIDMap Table (AccTypeID BigInt, FullNo nvarchar(50), Branch BigInt, Code Varchar, ID BigInt) Insert @ParentIDMap (AccTypeID, Branch, FullNo, Code) Values (1, 5, '01111', 2), -- Some other rows (8, 5
Declare @ParentIDMap Table (AccTypeID BigInt, FullNo nvarchar(50), Branch BigInt, Code Varchar, ID BigInt)
Insert @ParentIDMap (AccTypeID, Branch, FullNo, Code)
Values (1, 5, '01111', 2),
-- Some other rows
(8, 5, '04121', 2)
Update @ParentIDMap
Set ID = Book.ID
From Accounting.ACNT.Book
Where Book.FullNo = @ParentIDMap.FullNo + @ParentIDMap.Code
错误:必须声明标量变量'@ParentIDMap'您需要在
FROM
子句中引用@ParentIDMap
,以便能够进行更新(SqlServer在这方面与其他RDBMS不同)。您还可以切换到连接:
Update p
Set p.ID = Book.ID
From Accounting.ACNT.Book
INNER JOIN @ParentIDMap p
ON Book.FullNo = p.FullNo + p.Code;