@@CURSOR_ROWS (Transact-SQL)

Restituisce il numero delle righe attualmente risultanti nell'ultimo cursore aperto sulla connessione. Per migliorare le prestazioni, MicrosoftSQL Server può popolare i cursori statistici e i set di chiavi di grandi dimensioni in modo asincrono. È possibile chiamare la funzione @@CURSOR_ROWS in modo che il recupero del numero delle righe per un cursore venga eseguito al momento della chiamata della funzione.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

@@CURSOR_ROWS

Tipi restituiti

integer

Valore restituito

Valore restituito

Descrizione

-m

Il cursore viene popolato in modo asincrono. Il valore restituito (-m) corrisponde al numero di righe risultanti per il set di chiavi.

-1

Il cursore è dinamico. Poiché nei cursori dinamici vengono riportate tutte le modifiche, il numero delle righe risultanti per il cursore è variabile. Non è possibile affermare in modo definitivo che tutte le righe restituite sono state recuperate.

0

Non è stato aperto alcun cursore, nessuna riga è stata restituita per l'ultimo cursore aperto oppure l'ultimo cursore aperto è chiuso o deallocato.

n

Il cursore è completamente popolato. Il valore restituito (n) corrisponde al numero totale di righe nel cursore.

Osservazioni

Il numero restituito dalla funzione @@CURSOR_ROWS è negativo se l'ultimo cursore è stato aperto in modo asincrono. I driver del set di chiavi o i cursori statistici vengono aperti in modo asincrono se il valore di sp_configure cursor threshold è maggiore di 0 e il numero di righe nel set di risultati del cursore è maggiore del valore di soglia del cursore.

Esempi

In questo esempio viene dichiarato un cursore e viene utilizzata l'istruzione SELECT per visualizzare il valore della funzione @@CURSOR_ROWS. Prima dell'apertura del cursore il valore della funzione è 0. Il valore -1 indica che il set di chiavi del cursore è stato popolato in modo asincrono.

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           

Set di risultati:

-----------
0          

LastName       
---------------
Achong          

           
-----------
-1