
Exécuter des procédures stockées pour chaque ligne de résultats de requête dans T-SQL
Pour parcourir les résultats d'une requête et exécuter une procédure stockée pour chaque ligne, un CURSEUR peut être utilisé dans T-SQL. Un CURSEUR vous permet de récupérer une ligne à la fois à partir d'un ensemble de résultats, ce qui le rend bien adapté à ce scénario.
Pour réaliser cette fonctionnalité de boucle, les étapes suivantes décrivent la solution dans T-SQL :
-
Déclarez les variables nécessaires :
a. Déclarez une variable entière @id pour stocker la valeur ID de chaque ligne.
b. Déclarez une deuxième variable @name, par exemple, pour stocker une valeur de colonne supplémentaire de la table.
c. Déclarez une variable CURSOR @getid pour maintenir le curseur qui parcourra les lignes.
-
Créez le CURSOR :
Utilisez l'instruction SET pour attribuer une valeur à @getid, où le value est une instruction SQL qui sélectionne les colonnes souhaitées dans la table. Dans cet exemple, nous sélectionnons à la fois l'identifiant et le nom.
-
Ouvrez le CURSEUR :
Utilisez l'instruction OPEN pour ouvrir le CURSEUR, le rendant ainsi disponible pour les opérations de récupération.
-
Récupérer la première ligne :
Utilisez l'instruction FETCH NEXT pour récupérer la première ligne de l'ensemble de résultats dans les variables déclarées (@id et @name).
-
Parcourez les lignes :
Utilisez une boucle WHILE pour parcourir les lignes restantes tant que @@FETCH_STATUS est 0, indiquant qu'il y a plus de lignes à traiter.
-
Exécuter le fichier stocké procédure :
À l'intérieur de la boucle, exécutez la procédure stockée à l'aide de l'instruction EXEC, en passant les paramètres appropriés de la ligne actuelle. Dans cet exemple, nous transmettons @id, @otherVarName et @varForName.
-
Récupérez la ligne suivante :
Après avoir exécuté la procédure stockée, utilisez à nouveau FETCH NEXT pour récupérer la suivante ligne dans les variables déclarées.
-
Fermez et désallouez le CURSOR :
Après avoir traité toutes les lignes, utilisez les instructions CLOSE et DEALLOCATE pour libérer les ressources CURSOR.
En suivant ces étapes, vous pouvez efficacement parcourir les résultats d'une requête dans T-SQL et exécutez une procédure stockée pour chaque ligne, vous permettant d'effectuer des opérations personnalisées basées sur les données récupérées.
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!