@@CURSOR_ROWS (Transact-SQL)

Si applica a:SQL Server database SQL di Azure Istanza gestita di SQL di Azure

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 a @@CURSOR_ROWS.

Convenzioni di sintassi Transact-SQL

Sintassi

@@CURSOR_ROWS  

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere la documentazione delle versioni precedenti.

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 cambia in modo costante. Il cursore non recupera necessariamente tutte le righe qualificate.
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:

@@CURSOR_ROWS restituisce un numero negativo se l'ultimo cursore è stato aperto in modalità asincrona. I driver del set di chiavi o i cursori statici si aprono in modo asincrono se il valore della soglia del cursore sp_configure è maggiore di 0 e il numero di righe nel set di risultati del cursore è maggiore del valore soglia del cursore.

Esempi

Questo esempio prima dichiara un cursore e quindi usa l'istruzione SELECT per visualizzare il valore della funzione @@CURSOR_ROWS. Prima dell'apertura del cursore, il valore della funzione è 0. Il valore diventa quindi -1, a indicare che il set di chiavi del cursore viene popolato in modo asincrono.

USE AdventureWorks2022;  
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

Vedi anche

Funzioni cursori (Transact-SQL)
OPEN (Transact-SQL)