Apabila memasukkan berbilang rekod ke dalam jadual dengan lajur identiti, mendapatkan nilai identiti yang baru dijana boleh menjadi penting untuk manipulasi data seterusnya . Artikel ini meneroka cara untuk mencapai ini tanpa menggunakan kursor dalam Microsoft SQL Server 2005.
Pertimbangkan senario berikut: Anda mempunyai dua jadual, Jadual A dengan lajur identiti (id) dan Jadual B, yang mengandungi data berkaitan. Anda ingin memasukkan rekod daripada Jadual B ke dalam Jadual A dan mendapatkan nilai identiti masing-masing untuk mengemas kini lajur NewId dalam Jadual B.
SQL Server 2005 menyediakan mekanisme yang mudah melalui klausa OUTPUT untuk mendapatkan semula nilai identiti yang dijana semasa operasi sisipan. Kod berikut menunjukkan cara menggunakan ciri ini:
DECLARE @output TABLE (id int) INSERT INTO A (fname, lname) OUTPUT INSERTED.id INTO @output SELECT fname, lname FROM B
Pertanyaan ini akan memasukkan rekod daripada Jadual B ke dalam Jadual A dan menyimpan nilai identiti dalam pembolehubah jadual yang dipanggil @output. Pembolehubah jadual @output akan mengandungi satu lajur (id) dengan nilai identiti yang baru dijana, membolehkan anda mendapatkan semula dan menggunakannya untuk pemprosesan selanjutnya.
Pertimbangkan contoh jadual dan data disediakan dalam huraian masalah. Selepas melaksanakan kod di atas:
-- 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
Hasilnya ialah jadual dengan nilai identiti baris yang dimasukkan:
id ------- 1 2 3
Nilai identiti ini kemudiannya boleh digunakan untuk mengemas kini NewId lajur dalam Jadual B dengan sewajarnya.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nilai Identiti Selepas Memasukkan Berbilang Rekod dalam SQL Server 2005 Tanpa Kursor?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!