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

如何在 SQL 中檢索最後插入的行 ID?

Barbara Streisand
發布: 2025-01-13 13:21:43
原創
452 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板