如何检索通过insert ... select插入的行的标识?

Man*_*anu 4 sql sql-server identity

我通过类似于这个的查询插入记录:

insert into tbl_xyz select field1 from tbl_abc
Run Code Online (Sandbox Code Playgroud)

现在我想要检索插入记录的新生成的IDENTITY值.如何以最小的锁定量和最大的可靠性来做到这一点?

Bri*_*ndy 19

您可以使用OUTPUT子句获取此信息.

您可以将信息输出到临时目标表或视图.

这是一个例子:

DECLARE @InsertedIDs TABLE (ID bigint)
INSERT into DestTable (col1, col2, col3, col4)
OUTPUT INSERTED.ID INTO @InsertedIDs
SELECT col1, col2, col3, col4 FROM SourceTable
Run Code Online (Sandbox Code Playgroud)

然后,您可以查询插入ID的表InsertedID.

  • 什么?那太可怕了!该功能何时添加? (2认同)