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

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

Patricia Arquette
發布: 2025-01-03 17:11:40
原創
641 人瀏覽過

How to Retrieve Identity Values After Bulk Inserting Records in SQL Server without Cursors?

批次插入記錄並擷取無遊標的識別值

在表中插入多筆記錄是資料庫程式設計中的常見任務。特別是當將資料從一個表複製到另一個表時,希望獲得為新記錄產生的識別值。在這方面,Microsoft SQL Server 2005 提供了使用 OUTPUT 子句的有效解決方案。

考慮到提供的程式碼片段,其中資料從表B 插入表A:

Create Table A (id int identity, Fname nvarchar(50), Lname nvarchar(50))
Create Table B (Fname nvarchar(50), Lname nvarchar(50), NewId int)
Insert into A(fname, lname)
SELECT fname, lname
FROM B
登入後複製

To檢索表A 中新插入記錄的識別值,我們可以採用以下技術:

使用OUTPUT 子句

OUTPUT子句允許我們檢索在插入、更新或刪除操作期間產生的值。在這種情況下,我們可以使用它來捕獲插入行的標識值。

DECLARE @output TABLE (id int)

Insert into A (fname, lname)
OUTPUT inserted.ID INTO @output
SELECT fname, lname FROM B
登入後複製

透過建立表格變數(@output)並指定 OUTPUT insert.ID 表達式,我們指示查詢將插入記錄的識別值傳回@output。

查詢表格變數

插入操作完成後,我們可以查詢@output表變數來取得識別值:

select * from @output
登入後複製

這將顯示一個只有一列(id )包含新插入記錄的識別值。如果需要,這些值可以用於更新表 B 中的對應記錄。

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

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