Maison >base de données >tutoriel mysql >Comment puis-je appeler une procédure stockée pour chaque ligne d'un tableau sans curseurs ?

Comment puis-je appeler une procédure stockée pour chaque ligne d'un tableau sans curseurs ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-06 00:03:40575parcourir

How Can I Call a Stored Procedure for Each Row in a Table Without Cursors?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn