取得最後插入行的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中文網其他相關文章!