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

标签 sql sql-server identity

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

insert into tbl_xyz select field1 from tbl_abc

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

最佳答案

您可以使用 OUTPUT 获取此信息条款。

您可以将信息输出到临时目标表或 View 。

这是一个例子:

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。

关于sql - 如何检索通过 insert...select 插入的行的标识?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/575273/

相关文章:

c# - 哪些 C# 数据类型不是 WCF 可序列化的?

sql-server - SQL Server 代理作业运行缓慢

c# - User.Identity.GetUserId() 登录成功后返回null

具有有限层次结构的 MySQL 自连接

mysql - 如何使用 JDBC 中的文本字段值更新数据库?

sql-server - 无法识别来自 restore-sqldatabase 的 AutoRelocateFile 参数

sql - 在用户定义的函数中增加字母数字值

java - 为一个变量分配另一个变量的身份

sql - 使用选项(重新编译)运行 SQL 查询总是更快

sql - 无法从 SQL Server Management Studio 编辑架构或数据