获取最后插入行的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 或涉及插入触发器的场景中,需要稍微不同的策略:
INSERT
语句。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中文网其他相关文章!