Puis-je réinitialiser la position du curseur au début?
Comme dans le sujet. Puis-je simplement réinitialiser la position du curseur au début de Transact-SQL, donc il peut fonctionner à nouveau sur la table? Je veux le réinitialiser dans le contexte suivant:
DECLARE @userID INT
DECLARE user_cursor CURSOR FOR SELECT userID FROM users
WHILE /* some condition */
BEGIN
...
FETCH NEXT FROM user_cursor INTO @userID
IF @@FETCH_STATUS = 0
BEGIN
/*... here goes the reset of the cursor ...*/
END
...
END
source d'informationauteur Oskar Szura
Vous devez vous connecter pour publier un commentaire.
vous devez déclarer votre curseur de défilement, à l'instar de ce
à tout moment pour localiser le premier suffit d'utiliser la suite
Une autre option qui peut être utilisée que ne vous force pas à changer le type de curseur est simplement de fermer le curseur et re -ouvert:
Mais la
scroll
sera moins cher en termes d'utilisation des ressources, si c'est un changement, vous pouvez accepter.Les données récupérées par le curseur ne change pas.
STATIQUE
Définit un curseur qui fait une copie temporaire des données utilisées par le curseur. Toutes les demandes pour le curseur sont une réponse à partir de cette table temporaire dans la base de données tempdb; par conséquent, les modifications apportées aux tables de base ne sont pas reflétées dans les données renvoyées par les extractions faites à ce curseur, et ce curseur n'autorise pas les modifications.
Utilisez le curseur de boucles et de ses prises en charge pour vous...