Appel d'une procédure stockée pour chaque ligne sans curseur
Si vous devez appeler une procédure stockée pour chaque ligne d'une table, mais Si vous souhaitez éviter d'utiliser un curseur, vous pouvez utiliser une approche basée sur des ensembles. Voici un extrait de code pour vous guider :
-- 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
Ce code parcourt une table, récupère l'ID du client suivant et appelle la procédure stockée YOURSPROC avec l'ID comme paramètre. Il continue cette boucle jusqu'à ce qu'il n'y ait plus de clients à traiter.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!