擷取 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。
選擇最佳方法
最佳方法取決於您的特定需求:
@@IDENTITY
。 SCOPE_IDENTITY()
方法。 IDENT_CURRENT('tableName')
檢索最近沒有插入記錄的表的ID。 OUTPUT
子句。 以上是如何在 SQL Server 中擷取新插入行的識別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!