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

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

Barbara Streisand
发布: 2025-01-13 13:21:43
原创
451 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板