首頁 > 資料庫 > mysql教程 > 如何在沒有遊標的 SQL Server 2005 中插入多筆記錄後檢索識別值?

如何在沒有遊標的 SQL Server 2005 中插入多筆記錄後檢索識別值?

Susan Sarandon
發布: 2024-12-31 13:29:10
原創
380 人瀏覽過

How to Retrieve Identity Values After Inserting Multiple Records in SQL Server 2005 Without Cursors?

插入多筆記錄並擷取識別值

將多筆記錄插入到具有識別列的表中時,取得新產生的識別值對於後續資料操作至關重要。本文探討如何在 Microsoft SQL Server 2005 中不使用遊標來實現此目的。

問題描述

考慮以下場景:您有兩個表,表 A 具有識別列 (id)表B,其中包含相關資料。您希望將 B 表中的記錄插入到 A 表中,並取得對應的識別值來更新 B 表中的 NewId 欄位。

解決方案

SQL Server 2005 透過 OUTPUT 子句提供了一個方便的機制在插入操作期間檢索產生的識別值。以下程式碼示範如何使用此功能:

DECLARE @output TABLE (id int)

INSERT INTO A (fname, lname)
OUTPUT INSERTED.id INTO @output
SELECT fname, lname FROM B
登入後複製

此查詢會將表 B 中的記錄插入表 A 中,並將識別值儲存在名為 @output 的表變數中。表變數 @output 將包含帶有新產生的識別值的單列 (id),允許您檢索並使用它們進行進一步處理。

範例

考慮範例表格和資料問題描述中提供。執行上述程式碼後:

-- Insert records into Table A and retrieve identity values
DECLARE @output TABLE (id int)

INSERT INTO A (fname, lname)
OUTPUT INSERTED.id INTO @output
SELECT fname, lname FROM B

-- Display the identity values in the table variable
SELECT * FROM @output
登入後複製

結果將是一個包含插入行的識別值的表:

id
-------
1
2
3
登入後複製

這些標識值可以用於更新NewId相應地在表B 中列出。

以上是如何在沒有遊標的 SQL Server 2005 中插入多筆記錄後檢索識別值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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