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

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

Barbara Streisand
Barbara Streisand原创
2025-01-21 22:57:10577浏览

How to Retrieve the Last Inserted ID in SQL Server?

获取最后插入行的ID

在使用 SQL Server 数据库和自动递增主键时,访问最近添加的记录的 ID 是一个常见的需求。 本指南概述了实现此目的的几种方法,考虑到不同的 SQL Server 版本和插入触发器的潜在存在。

SQL Server 2005 及更高版本(无插入触发器)

对于 2005 及更高版本,简化的方法是将 OUTPUT INSERTED.ID 子句直接合并到 INSERT 语句中。该子句有效地返回新插入行的 ID。 这是一个例子:

<code class="language-sql">INSERT INTO aspnet_GameProfiles (UserId, GameId)
OUTPUT INSERTED.ID
VALUES (@UserId, @GameId);</code>

然后可以通过 ExecuteScalar() 对象的 SqlCommand 方法轻松访问新生成的 ID:

<code class="language-csharp">Int32 newId = (Int32)myCommand.ExecuteScalar();</code>

SQL Server 2000 或存在插入触发器时

在 SQL Server 2000 或涉及插入触发器的场景中,需要稍微不同的策略:

  1. 执行标准INSERT语句。
  2. 使用SCOPE_IDENTITY()函数检索最后插入的身份值。
<code class="language-sql">INSERT INTO aspnet_GameProfiles (UserId, GameId)
VALUES (@UserId, @GameId);
SELECT SCOPE_IDENTITY();</code>

与之前的方法类似,可以使用ExecuteScalar()来获取结果ID:

<code class="language-csharp">Int32 newId = (Int32)myCommand.ExecuteScalar();</code>

这些方法提供了高效可靠的方法来检索最后插入的行的 ID,从而实现与后续数据库操作的无缝集成。

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

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