一尘不染

如何检索通过insert-elect插入的行的标识?

sql

我正在通过类似于此查询的查询插入记录:

insert into tbl_xyz select field1 from tbl_abc

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


阅读 137

收藏
2021-03-17

共1个答案

一尘不染

您可以使用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

然后,您可以在表InsertedIDs中查询所插入的ID。

2021-03-17