Alternatif kepada Menggunakan Kursor untuk Penyertaan Prosedur Tersimpan dalam SQL
Daripada menggunakan kursor, pertimbangkan pendekatan berasaskan set untuk melaksanakan tersimpan prosedur untuk setiap baris dalam jadual. Ini menawarkan kelebihan prestasi sambil menghapuskan keperluan untuk kursor.
Walau bagaimanapun, dalam sesetengah senario, kursor tetap tidak dapat dielakkan. Untuk kes sedemikian, coretan berikut menyediakan penyelesaian yang berdaya maju:
-- Declare & initialize variables (SQL Server 2008 syntax) DECLARE @CustomerID INT = 0 -- Iterate through customers WHILE (1 = 1) BEGIN -- Retrieve customer ID SELECT TOP 1 @CustomerID = CustomerID FROM Sales.Customer WHERE CustomerID > @CustomerId ORDER BY CustomerID -- Exit loop if all customers have been processed IF @@ROWCOUNT = 0 BREAK; -- Invoke stored procedure EXEC dbo.YOURSPROC @CustomerId END
Coretan ini berulang melalui pelanggan berdasarkan ID pelanggan mereka, memastikan setiap data pelanggan dihantar sebagai parameter kepada prosedur tersimpan YOURSPROC.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengelakkan Kursor Semasa Memanggil Prosedur Tersimpan dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!