首页 >数据库 >mysql教程 >如何在 SQL 中检索最后插入的行 ID?

如何在 SQL 中检索最后插入的行 ID?

Barbara Streisand
Barbara Streisand原创
2025-01-13 13:21:43452浏览

How to Retrieve the Last Inserted Row ID in SQL?

访问 SQL 中最近添加的行的 ID

将新数据插入数据库表后,您经常需要检索新行自动生成的 ID。本文展示了获取此 ID 的几种 SQL 方法,从而避免了对临时表的需要。

SCOPE_IDENTITY()

对于将 INTBIGINT 列设置为标识列的表,SCOPE_IDENTITY() 可有效检索 INSERT 语句后的 ID。 方法如下:

<code class="language-sql">INSERT INTO dbo.YourTable(columns....)
VALUES(..........)

SELECT SCOPE_IDENTITY()</code>

这将返回当前范围内最近插入的身份值(可能受到嵌套事务的影响)。

@@IDENTITY

@@IDENTITY 是一个全局变量,保存最后分配的标识值。 像这样使用它:

<code class="language-sql">INSERT INTO dbo.YourTable(columns....)
VALUES(..........)

SELECT @@IDENTITY</code>

但是,@@IDENTITY 反映了所有范围内的最后一个身份值,可能包括嵌套事务中较早的插入。 如果同一会话中发生多次插入,这可能会给出不正确的结果。

IDENT_CURRENT()

IDENT_CURRENT() 提供了另一种选择。它检索特定表的标识值,无论范围或事务如何:

<code class="language-sql">INSERT INTO dbo.YourTable(columns....)
VALUES(..........)

SELECT IDENT_CURRENT('dbo.YourTable')</code>

IDENT_CURRENT() 保证 ID 来自指定的表,即使在嵌套事务中进行多次插入也是如此。

总结

数据库开发人员需要了解这些不同的方法来检索最后插入的行 ID。根据您的表结构和操作上下文选择正确的方法,可确保准确的 ID 检索并保持数据完整性。

以上是如何在 SQL 中检索最后插入的行 ID?的详细内容。更多信息请关注PHP中文网其他相关文章!

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