在沒有遊標的情況下為每一行呼叫預存程序
如果您需要為表中的每一行呼叫預存程序,但是希望避免使用遊標,您可以使用基於集合的方法。以下是一個指導您的程式碼片段:
-- 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
此程式碼迭代表,擷取下一個客戶的 ID,並以 ID 作為參數呼叫預存程序 YOURSPROC。它會繼續這個循環,直到沒有更多的客戶需要處理。
以上是如何為沒有遊標的表中的每一行呼叫預存程序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!