首頁 > 資料庫 > mysql教程 > 如何在 @@IDENTITY、SCOPE_IDENTITY() 和 OUTPUT 之間進行選擇以擷取最後的身分值?

如何在 @@IDENTITY、SCOPE_IDENTITY() 和 OUTPUT 之間進行選擇以擷取最後的身分值?

DDD
發布: 2024-12-29 18:03:10
原創
338 人瀏覽過

How to Choose Between @@IDENTITY, SCOPE_IDENTITY(), and OUTPUT for Retrieving Last Identity Values?

擷取最後的識別:@@IDENTITY、SCOPE_IDENTITY() 和OUTPUT

將新記錄插入表中通常涉及檢索最後產生的記錄列的標識值。為此目的,有許多方法,包括 @@IDENTITY、SCOPE_IDENTITY() 和 OUTPUT。

@@IDENTITY

@@IDENTITY 擷取產生的最後一個身分值目前連接,無論表或範圍如何。它會傳回由最近插入產生的識別值,即使是由另一個操作觸發的。但是,此方法不是範圍安全的。

SCOPE_IDENTITY()

SCOPE_IDENTITY() 另一方面,是範圍安全的。它傳回語句目前範圍內產生的最後一個標識值。這表示如果觸發器插入記錄並產生識別值,SCOPE_IDENTITY() 將不會傳回該值,除非該值是由呼叫 SCOPE_IDENTITY() 的相同語句產生的。

OUTPUT 方法

OUTPUT 方法是另一個擷取識別值的選項。它傳回插入行的表,包括插入期間產生的識別值。此方法也是範圍安全的,因為它僅檢索目前語句插入的行的識別值。

決定最佳方法

方法的選擇用於檢索最後一個身份值取決於具體場景:

  • @ @IDENTITY:適合擷取特定會話中的最後一個身分值,無論範圍為何。
  • SCOPE_IDENTITY():當需要在插入相同的範圍內檢索識別值時使用語句。
  • 輸出方法:當您需要檢索插入行的表(包括它們的識別值)時,這是理想的選擇。

以上是如何在 @@IDENTITY、SCOPE_IDENTITY() 和 OUTPUT 之間進行選擇以擷取最後的身分值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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