Heim >Datenbank >MySQL-Tutorial >Wie kann ich eine gespeicherte Prozedur für jede Zeile in einer Tabelle ohne Cursor aufrufen?
Aufrufen einer gespeicherten Prozedur für jede Zeile ohne Cursor
Wenn Sie eine gespeicherte Prozedur für jede Zeile in einer Tabelle aufrufen müssen, aber Wenn Sie die Verwendung eines Cursors vermeiden möchten, können Sie einen satzbasierten Ansatz verwenden. Hier ist ein Codeausschnitt zur Orientierung:
-- 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
Dieser Code durchläuft eine Tabelle, ruft die ID des nächsten Kunden ab und ruft die gespeicherte Prozedur YOURSPROC mit der ID als Parameter auf. Diese Schleife wird fortgesetzt, bis keine Kunden mehr verarbeitet werden müssen.
Das obige ist der detaillierte Inhalt vonWie kann ich eine gespeicherte Prozedur für jede Zeile in einer Tabelle ohne Cursor aufrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!