@@CURSOR_ROWS (Transact-SQL)
Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure
Questa funzione restituisce il numero di righe idonee attualmente 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. @@CURSOR_ROWS
può essere chiamato per determinare che il numero di righe qualificate per un cursore viene recuperato al momento della @@CURSOR_ROWS
chiamata.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
@@CURSOR_ROWS
Tipi restituiti
int
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 |
Nessun cursore aperto, nessuna riga qualificata per l'ultimo cursore aperto o l'ultimo cursore aperto viene 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 cursori keyset-driver o statici vengono aperti in modo asincrono se il valore per sp_configure
la soglia del cursore supera 0
e il numero di righe nel set di risultati del cursore supera la 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 (No column name) ROWSTAT
--------- ----------------- ---------
Sánchez -1 NULL
-----------
-1