@@CURSOR_ROWS (Transact-SQL)
Restituisce il numero delle righe attualmente risultanti nell'ultimo cursore aperto sulla connessione. Per migliorare le prestazioni, SQL 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.
Convenzioni 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 statici 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 soglia del cursore.
Esempi
Nell'esempio seguente 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 AdventureWorks2012;
GO
SELECT @@CURSOR_ROWS;
DECLARE Name_Cursor CURSOR FOR
SELECT LastName ,@@CURSOR_ROWS FROM Person.Person;
OPEN Name_Cursor;
FETCH NEXT FROM Name_Cursor;
SELECT @@CURSOR_ROWS;
CLOSE Name_Cursor;
DEALLOCATE Name_Cursor;
GO
Set di risultati.
-----------
0
LastName
---------------
Sanchez
-----------
-1