如何在不 使用游标的情况下为表中的每一行调用存储过程,其中行的列是 sp 的输入参数?
一般来说,我总是寻找一种基于集合的方法(有时以改变架构为代价)。
但是,这个片段确实有它的位置..
-- 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