Mengambil Nilai Identiti Baru Dijana Selepas Penyata INSERT SQL
Selalunya, selepas memasukkan data ke dalam jadual SQL dengan lajur identiti peningkatan automatik, anda perlu mengakses ID yang baru dijana. Klausa OUTPUT
menawarkan cara yang mudah untuk mencapai perkara ini.
Panduan ini menggambarkan dua kaedah biasa untuk mendapatkan semula nilai identiti menggunakan klausa OUTPUT
:
Kaedah 1: Output ke Konsol (dan kemudian ke aplikasi anda)
Kaedah paling mudah mengeluarkan nilai identiti terus ke konsol. Ini berguna apabila berurusan dengan sisipan tunggal dan mendapatkan ID dalam kod aplikasi anda:
<code class="language-sql">INSERT INTO MyTable (Name, Address, PhoneNo) OUTPUT INSERTED.ID VALUES ('Yatrix', '1234 Address Stuff', '1112223333');</code>
Kod aplikasi anda (mis., menggunakan ExecuteScalar()
ADO.NET) kemudiannya boleh menangkap nilai output tunggal ini.
Kaedah 2: Output ke Pembolehubah Jadual (untuk berbilang sisipan atau pemprosesan selanjutnya)
Untuk berbilang sisipan atau apabila anda perlu memproses ID yang dijana dalam kod T-SQL anda, gunakan pembolehubah jadual sebagai sasaran klausa OUTPUT
:
<code class="language-sql">DECLARE @OutputTbl TABLE (ID INT); INSERT INTO MyTable (Name, Address, PhoneNo) OUTPUT INSERTED.ID INTO @OutputTbl (ID) VALUES ('Yatrix', '1234 Address Stuff', '1112223333'); -- Now you can access the ID(s) from @OutputTbl SELECT ID FROM @OutputTbl;</code>
Kaedah ini membolehkan anda bekerja dengan berbilang ID yang dimasukkan terus dalam prosedur tersimpan atau skrip T-SQL anda. Anda juga boleh menggunakan jadual sementara (#temp
) atau pun jadual kekal sebagai sasaran output.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Nilai Identiti Selepas Pernyataan INSERT dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!