@@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, Microsoft SQL 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.

Icône Lien de rubriqueConventions de syntaxe de Transact-SQL

Syntaxe

@@CURSOR_ROWS

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.

Types de retour

entier

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

Référence

Fonctions de curseur (Transact-SQL)
OPEN (Transact-SQL)

Autres ressources

Remplissage asynchrone

Aide et Informations

Assistance sur SQL Server 2005