Sql server 如何获取插入的行id并使用此id更新下一行
我使用两个查询insert和update。 所以我需要在进行插入时从插入的行获取输出id,并使用该id更新另一行Sql server 如何获取插入的行id并使用此id更新下一行,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我使用两个查询insert和update。 所以我需要在进行插入时从插入的行获取输出id,并使用该id更新另一行 begin TRANSACTION; insert into CustomerTrans (Username) values ('a') ; update CustomerTrans set Username='b' where TrnDocumentID=output (inserted.TrnDocumentID) commit; 但是我得到的错误输出未被识别输出只能在更新或
begin TRANSACTION;
insert into CustomerTrans (Username) values ('a') ;
update CustomerTrans set Username='b' where TrnDocumentID=output (inserted.TrnDocumentID)
commit;
但是我得到的错误输出未被识别
输出
只能在更新
或插入
语句中在SELECT
和FROM
子句之间引用,它不是一个对象,而是一个子句(即,OUTPUT inserted.*
,注意,OUTPUT
是子句,inserted
是对象)。您可以在此处一次插入多行,还是只插入一行?为什么需要这样做?我猜您可能会在此处插入一行,因为您的代码示例效率低下且逻辑上毫无意义。我发现我可以使用SCOPE_IDENTITY()。但问题是,如果有多个客户端同时运行同一查询,我会有问题吗?不会,不会有问题。除了此ALOW search output子句之外,您可以使用Scope_Identity()。如果要插入多条记录,这将很有帮助。