首页 >数据库 >mysql教程 >如何在 SQL 中检索 INSERT 语句后的 Identity 值?

如何在 SQL 中检索 INSERT 语句后的 Identity 值?

Linda Hamilton
Linda Hamilton原创
2025-01-17 12:31:12479浏览

How Can I Retrieve the Identity Value After an INSERT Statement in SQL?

在 SQL INSERT 语句后检索新生成的标识值

通常,在将数据插入具有自动递增标识列的 SQL 表后,您需要访问新生成的 ID。 OUTPUT 子句提供了一种实现此目的的便捷方法。

本指南说明了使用 OUTPUT 子句检索身份值的两种常见方法:

方法一:输出到控制台(然后输出到您的应用程序)

最简单的方法将身份值直接输出到控制台。 这在处理单个插入并检索应用程序代码中的 ID 时非常有用:

<code class="language-sql">INSERT INTO MyTable (Name, Address, PhoneNo)
OUTPUT INSERTED.ID
VALUES ('Yatrix', '1234 Address Stuff', '1112223333');</code>

您的应用程序代码(例如,使用 ADO.NET 的 ExecuteScalar())可以捕获此单个输出值。

方法 2:输出到表变量(用于多次插入或进一步处理)

对于多次插入或需要在 T-SQL 代码中处理生成的 ID 时,请使用表变量作为 OUTPUT 子句的目标:

<code class="language-sql">DECLARE @OutputTbl TABLE (ID INT);

INSERT INTO MyTable (Name, Address, PhoneNo)
OUTPUT INSERTED.ID INTO @OutputTbl (ID)
VALUES ('Yatrix', '1234 Address Stuff', '1112223333');

-- Now you can access the ID(s) from @OutputTbl
SELECT ID FROM @OutputTbl;</code>

此方法允许您直接在存储过程或 T-SQL 脚本中使用多个插入的 ID。 您还可以使用临时表(#temp)甚至永久表作为输出目标。

以上是如何在 SQL 中检索 INSERT 语句后的 Identity 值?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn