首頁 > 資料庫 > mysql教程 > 如何在 SQL Server 插入資料庫後檢索最後插入的 ID?

如何在 SQL Server 插入資料庫後檢索最後插入的 ID?

DDD
發布: 2025-01-21 23:12:13
原創
340 人瀏覽過

How to Retrieve the Last Inserted ID After a Database Insertion in SQL Server?

取得SQL Server資料庫插入後最新的ID

在資料庫插入資料後,經常需要取得最新插入記錄的ID。讓我們來看一個場景:需要在aspnet_GameProfiles表中插入一行後,取得自動遞增的GamesProfileId。

以下程式碼片段執行INSERT語句,但沒有擷取新產生的GamesProfileId的機制。為實現此目的,我們將探討基於所使用SQL Server版本的不同方法。

SQL Server 2005以上版本(無插入觸發器)

對於SQL Server 2005以上版本,如果aspnet_GameProfiles表上沒有定義插入觸發器,您可以修改插入語句以包含OUTPUT子句:

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

這將自動傳回插入的ID作為查詢的輸出。您可以使用以下程式碼檢索它:

<code class="language-csharp">SqlCommand myCommand = new SqlCommand(insertSql, myConnection);
...
SqlDataReader reader = myCommand.ExecuteReader();
reader.Read();
Int32 newId = reader.GetInt32(0);</code>
登入後複製

SQL Server 2000或插入觸發器

如果您使用的是SQL Server 2000或表格上有插入觸發器,您可以使用SCOPE_IDENTITY()函數:

<code class="language-sql">INSERT INTO aspnet_GameProfiles(UserId,GameId) 
VALUES(@UserId, @GameId);
SELECT SCOPE_IDENTITY()</code>
登入後複製

執行查詢後,您可以使用以下程式碼檢索最新插入的ID:

<code class="language-csharp">SqlCommand myCommand = new SqlCommand(insertSql, myConnection);
...
Int32 newId = (Int32) myCommand.ExecuteScalar();</code>
登入後複製

透過使用這些技術,您可以有效地取得最後插入的GamesProfileId,從而能夠在應用程式中將其用於後續插入或其他操作。

以上是如何在 SQL Server 插入資料庫後檢索最後插入的 ID?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板