@@CURSOR_ROWS (Transact-SQL)
Retourne le nombre de lignes éligibles se trouvant actuellement dans le dernier curseur ouvert sur la connexion. Afin d'améliorer les performances, MicrosoftSQL Server peut charger de grands curseurs pilotés par jeux de clés et curseurs statiques de manière asynchrone. @@CURSOR_ROWS peut être appelé pour déterminer que le nombre de lignes éligibles pour un curseur sont extraites au moment de l'appel de @@CURSOR_ROWS.
Syntaxe
@@CURSOR_ROWS
Types de retour
entier
Valeur de retour
Valeur retournée |
Description |
---|---|
-m |
Le curseur est rempli de façon asynchrone. La valeur retournée (-m) correspond au nombre de lignes figurant actuellement dans le jeu de clés. |
-1 |
Le curseur est dynamique. Puisque les curseurs dynamiques reflètent toutes les modifications, le nombre de lignes qui se qualifient pour le curseur varie constamment. On ne peut jamais affirmer définitivement que toutes les lignes qualifiées ont été extraites. |
0 |
Aucun curseur n'a été ouvert, aucune ligne n'a été qualifiée pour le dernier curseur ouvert ou le dernier curseur ouvert est fermé ou désalloué. |
n |
Le curseur est totalement rempli. La valeur retournée (n) correspond au nombre total de lignes du curseur. |
Notes
Le nombre retourné par @@CURSOR_ROWS est négatif si le dernier curseur a été ouvert de façon asynchrone. Les curseurs pilotés par jeux de clés ou les curseurs statiques sont ouverts de façon asynchrone si la valeur de sp_configure cursor threshold est supérieure à 0 et si le nombre de lignes de l'ensemble de résultats du curseur est supérieur au seuil du curseur.
Exemple
Cet exemple déclare un curseur et utilise SELECT pour afficher la valeur de @@CURSOR_ROWS. La valeur du paramètre est 0 avant l'ouverture du curseur, et -1 pour indiquer que le jeu de clés du curseur est rempli de façon asynchrone.
USE AdventureWorks;
GO
SELECT @@CURSOR_ROWS;
DECLARE Name_Cursor CURSOR FOR
SELECT LastName ,@@CURSOR_ROWS FROM Person.Contact;
OPEN Name_Cursor;
FETCH NEXT FROM Name_Cursor;
SELECT @@CURSOR_ROWS;
CLOSE Name_Cursor;
DEALLOCATE Name_Cursor;
GO
Voici les ensembles de résultats obtenus :
-----------
0
LastName
---------------
Achong
-----------
-1
Voir aussi