Alternative à l'utilisation de curseurs pour l'invocation de procédures stockées en SQL
Au lieu d'utiliser un curseur, envisagez une approche basée sur des ensembles pour exécuter une procédure stockée procédure pour chaque ligne d’un tableau. Cela offre des avantages en termes de performances tout en éliminant le besoin de curseurs.
Dans certains scénarios, cependant, les curseurs restent inévitables. Dans de tels cas, l'extrait suivant fournit une solution viable :
-- Declare & initialize variables (SQL Server 2008 syntax) DECLARE @CustomerID INT = 0 -- Iterate through customers WHILE (1 = 1) BEGIN -- Retrieve customer ID SELECT TOP 1 @CustomerID = CustomerID FROM Sales.Customer WHERE CustomerID > @CustomerId ORDER BY CustomerID -- Exit loop if all customers have been processed IF @@ROWCOUNT = 0 BREAK; -- Invoke stored procedure EXEC dbo.YOURSPROC @CustomerId END
Cet extrait parcourt les clients en fonction de leur identifiant client, garantissant que les données de chaque client sont transmises en tant que paramètres à la procédure stockée YOURSPROC.
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!