आम तौर पर मैं हमेशा एक सेट आधारित दृष्टिकोण की तलाश करता हूं (कभी-कभी स्कीमा बदलने की कीमत पर)।
हालांकि, इस स्निपेट का अपना स्थान है..
-- 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