在没有游标的情况下为每一行调用存储过程
如果您需要为表中的每一行调用存储过程,但是希望避免使用游标,您可以使用基于集合的方法。下面是一个指导您的代码片段:
-- 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中文网其他相关文章!