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
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
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
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!