Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Memanggil Prosedur Tersimpan untuk Setiap Baris dalam Jadual Tanpa Kursor?

Bagaimanakah Saya Boleh Memanggil Prosedur Tersimpan untuk Setiap Baris dalam Jadual Tanpa Kursor?

Susan Sarandon
Susan Sarandonasal
2025-01-06 00:03:40577semak imbas

How Can I Call a Stored Procedure for Each Row in a Table Without Cursors?

Memanggil Prosedur Tersimpan untuk Setiap Baris Tanpa Kursor

Jika anda perlu menggunakan prosedur tersimpan untuk setiap baris dalam jadual, tetapi ingin mengelak daripada menggunakan kursor, anda boleh menggunakan pendekatan berasaskan set. Berikut ialah coretan kod untuk membimbing anda:

-- Declare & init (2008 syntax)
DECLARE @CustomerID INT = 0

-- Iterate over all customers
WHILE (1 = 1) 
BEGIN  

  -- Get next customerId
  SELECT TOP 1 @CustomerID = CustomerID
  FROM Sales.Customer
  WHERE CustomerID > @CustomerId 
  ORDER BY CustomerID

  -- Exit loop if no more customers
  IF @@ROWCOUNT = 0 BREAK;

  -- call your sproc
  EXEC dbo.YOURSPROC @CustomerId

END

Kod ini berulang pada jadual, mendapatkan semula ID pelanggan seterusnya dan menggunakan prosedur tersimpan YOURSPROC dengan ID sebagai parameter. Ia meneruskan gelung ini sehingga tiada lagi pelanggan untuk diproses.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memanggil Prosedur Tersimpan untuk Setiap Baris dalam Jadual Tanpa Kursor?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn