Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mendapatkan Nilai Identiti Selepas Pukal Memasukkan Rekod dalam SQL Server tanpa Kursor?

Bagaimana untuk Mendapatkan Nilai Identiti Selepas Pukal Memasukkan Rekod dalam SQL Server tanpa Kursor?

Patricia Arquette
Lepaskan: 2025-01-03 17:11:40
asal
641 orang telah melayarinya

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

Memasukkan Rekod Pukal dan Dapatkan Nilai Identiti tanpa Kursor

Memasukkan berbilang rekod ke dalam jadual ialah tugas biasa dalam pengaturcaraan pangkalan data. Terutamanya apabila menyalin data dari satu jadual ke jadual lain, adalah wajar untuk mendapatkan nilai identiti yang dijana untuk rekod baharu. Dalam hal ini, Microsoft SQL Server 2005 menyediakan penyelesaian yang cekap menggunakan klausa OUTPUT.

Memandangkan coretan kod yang disediakan, di mana data dimasukkan dari jadual B ke dalam jadual 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
Salin selepas log masuk

Kepada mendapatkan semula nilai identiti rekod yang baru dimasukkan dalam jadual A, kita boleh menggunakan yang berikut teknik:

Gunakan Klausa OUTPUT

Klausa OUTPUT membolehkan kami mendapatkan semula nilai yang dijana semasa operasi sisipan, kemas kini atau padam. Dalam kes ini, kami boleh menggunakannya untuk menangkap nilai identiti baris yang disisipkan.

DECLARE @output TABLE (id int)

Insert into A (fname, lname)
OUTPUT inserted.ID INTO @output
SELECT fname, lname FROM B
Salin selepas log masuk

Dengan mencipta pembolehubah jadual (@output) dan menentukan ungkapan OUTPUT yang disisipkan.ID, kami mengarahkan pertanyaan untuk kembalikan nilai identiti rekod yang dimasukkan ke dalam @output.

Menyoal Jadual Pembolehubah

Setelah operasi sisip selesai, kita boleh menanyakan pembolehubah jadual @output untuk mendapatkan nilai identiti:

select * from @output
Salin selepas log masuk

Ini akan memaparkan jadual dengan satu lajur (id ) yang mengandungi nilai identiti bagi rekod yang baru dimasukkan. Nilai ini kemudiannya boleh digunakan untuk mengemas kini rekod yang sepadan dalam jadual B, jika mahu.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nilai Identiti Selepas Pukal Memasukkan Rekod dalam SQL Server tanpa Kursor?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan