Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Avantages de l'utilisation de la variable de curseur dans SQL Server (déclarez le curseur @cn)

Il y a un autre avantage à utiliser le DECLARE @local_variable CURSOR syntaxe que je viens de découvrir.

L'avantage se produit lorsqu'une procédure stockée en appelle une autre et que les deux procédures ont des curseurs ouverts en même temps. Si DECLARE cursor_name CURSOR est utilisé pour définir les curseurs, et les deux procédures utilisent le même nom_curseur, alors vous obtenez

Par contre, Si DECLARE @local_variable CURSOR est utilisé pour définir les curseurs dans les procédures stockées parent et enfant, puis @local_variable est local à chaque procédure et il n'y a pas de conflit. Pour ceux qui n'ont jamais utilisé cette méthode auparavant, voici un exemple, en utilisant @C comme variable locale :

DECLARE @C AS CURSOR;

SET @C = CURSOR FOR SELECT ...;

OPEN @C;

FETCH NEXT FROM @C INTO ...;

...