首頁 > 資料庫 > mysql教程 > 如何在 SQL Server 中擷取新插入行的識別?

如何在 SQL Server 中擷取新插入行的識別?

Mary-Kate Olsen
發布: 2025-01-23 09:16:14
原創
524 人瀏覽過

How to Retrieve the Identity of a Newly Inserted Row in SQL Server?

擷取 SQL Server 中新新增的行的 ID:探索 @@IDENTITY、SCOPE_IDENTITY、IDENT_CURRENT 和 OUTPUT 子句

在包含識別列的表中新增一行時,取得新產生的 ID 通常至關重要。 SQL Server 提供了多種方法來實現此目的,每種方法都有其自身的優點和限制。

@@IDENTITY

此函數傳回目前會話中所有資料表中最近產生的識別值。 因此,傳回的值可能不會總是反映您剛剛插入的行的 ID。 當從觸發器或同一會話中執行的另一個語句檢索 ID 時,它非常有用。

SCOPE_IDENTITY()

SCOPE_IDENTITY() 提供目前會話和範圍內產生的最後一個身分值。這通常是檢索剛剛新增的行 ID 的首選方法。

IDENT_CURRENT('表格名稱')

此函數會擷取為特定表產生的最後一個識別值,無論會話或範圍為何。 當您需要未直接插入記錄的表的 ID 時,這非常有用。

輸出子句

INSERT 語句的 OUTPUT 從句允許存取該語句插入的每一行,包括識別值。輸出可以定向到臨時表或變量,以便稍後檢索 ID。

選擇最佳方法

最佳方法取決於您的特定需求:

  • 從同一會話中的觸發器或其他語句取得 ID 時,請使用 @@IDENTITY
  • 對於剛插入的行的 ID,建議使用 SCOPE_IDENTITY() 方法。
  • 使用IDENT_CURRENT('tableName')檢索最近沒有插入記錄的表的ID。
  • 要在單一語句中從多行檢索 ID,或者即使發生錯誤也要可靠地檢索 ID,請使用 OUTPUT 子句。

以上是如何在 SQL Server 中擷取新插入行的識別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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