Rumah >pangkalan data >tutorial mysql >Bagaimanakah saya boleh melangkah ke atas hasil pertanyaan untuk melaksanakan prosedur yang disimpan untuk setiap baris dalam SQL Server?
Memproses Hasil Pertanyaan dengan Cekap dengan Prosedur Tersimpan dalam Pelayan SQL
Panduan ini menunjukkan cara untuk melaksanakan prosedur tersimpan untuk setiap baris yang dikembalikan daripada pertanyaan SQL Server. Bayangkan anda mempunyai prosedur tersimpan yang direka untuk mengemas kini data pengguna berdasarkan ID pengguna. Kaedah ini menunjukkan cara menggunakan prosedur itu kepada berbilang pengguna yang diambil daripada pertanyaan.
Menggunakan Kursor untuk Pemprosesan Baris-demi-Baris
Kursor SQL Server menawarkan penyelesaian untuk lelaran melalui hasil pertanyaan. Berikut ialah contoh:
<code class="language-sql">DECLARE @field1 INT; DECLARE @field2 INT; DECLARE cur CURSOR LOCAL FOR SELECT field1, field2 FROM sometable WHERE someotherfield IS NULL; OPEN cur; FETCH NEXT FROM cur INTO @field1, @field2; WHILE @@FETCH_STATUS = 0 BEGIN -- Execute your stored procedure for each row EXEC uspYourSproc @field1, @field2; FETCH NEXT FROM cur INTO @field1, @field2; END; CLOSE cur; DEALLOCATE cur;</code>
Pertimbangan Prestasi
Kursor, walaupun mudah untuk pemprosesan baris demi baris, boleh menjadi kurang cekap berbanding operasi berasaskan set. Untuk set data yang besar, pertimbangkan untuk memuatkan keputusan ke dalam jadual sementara terlebih dahulu untuk meningkatkan prestasi kursor. Elakkan menggunakan kursor apabila boleh untuk prestasi optimum.
Alternatif Unggul: Operasi Berasaskan Set
Jika boleh, menstruktur semula logik anda untuk menggunakan satu pernyataan UPDATE
dan bukannya gelung prosedur tersimpan akan meningkatkan prestasi dengan ketara. Operasi berasaskan set biasanya jauh lebih cekap daripada pemprosesan baris demi baris.
Atas ialah kandungan terperinci Bagaimanakah saya boleh melangkah ke atas hasil pertanyaan untuk melaksanakan prosedur yang disimpan untuk setiap baris dalam SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!