Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Database SQL di
AzureIstanza gestita di SQL di
AzureDatabase SQL in Microsoft Fabric
Per un parametro specifico, CURSOR_STATUS visualizza se una dichiarazione di cursore ha restituito un cursore e un set di risultati o meno.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
CURSOR_STATUS
(
{ 'local' , 'cursor_name' }
| { 'global' , 'cursor_name' }
| { 'variable' , 'cursor_variable' }
)
Argomenti
'locale'
Specifica una costante che indica che l'origine del cursore è un cursore locale.
'cursor_name'
Nome del cursore. I nomi di cursore devono essere conformi alle regole per gli identificatori dei database.
'global'
Specifica una costante che indica che l'origine del cursore è un cursore globale.
'variable'
Specifica una costante che indica che l'origine del cursore è una variabile locale.
'cursor_variable'
Nome di una variabile di cursore. Le variabili di cursore devono essere definite usando il tipo di dati cursor.
Tipi restituiti
piccoloint
| Valore restituito | Nome cursore | Variabile cursore |
|---|---|---|
1 |
Il set di risultati del cursore ha almeno una riga. Nel caso di cursori INSENSITIVE e KEYSET, il set di risultati include almeno una riga. Nel caso di cursori dinamici, il set di risultati può includere una o più righe oppure nessuna riga. |
Il cursore allocato a questa variabile è aperto. Nel caso di cursori INSENSITIVE e KEYSET, il set di risultati include almeno una riga. Nel caso di cursori dinamici, il set di risultati può includere una o più righe oppure nessuna riga. |
0 |
Il set di risultati del cursore è vuoto. 1 | Il cursore allocato a questa variabile è aperto, ma il set di risultati è vuoto.* |
-1 |
Il cursore è chiuso. | Il cursore allocato a questa variabile è chiuso. |
-2 |
Non applicabile. | Ha una di queste possibilità: La routine chiamata in precedenza non assegnava un cursore a questa OUTPUT variabile.La routine assegnata in precedenza ha assegnato un cursore a questa OUTPUT variabile, ma il cursore si trovava in uno stato chiuso al termine della procedura. Il cursore viene pertanto deallocato e non viene restituito alla procedura chiamante.Alla variabile cursore dichiarata non è assegnato alcun cursore. |
-3 |
Un cursore con il nome specificato non esiste. | Una variabile di cursore con il nome specificato non esiste o, se esistente, non è ancora stato allocato alcun cursore. |
1 I cursori dinamici non restituiscono mai questo risultato.
Esempi
Questo esempio usa la funzione CURSOR_STATUS per visualizzare lo stato di un cursore dopo la dichiarazione, dopo l'apertura e dopo la chiusura di questo.
CREATE TABLE #TMP (ii INT);
GO
INSERT INTO #TMP (ii) VALUES (1);
INSERT INTO #TMP (ii) VALUES (2);
INSERT INTO #TMP (ii) VALUES (3);
GO
-- Create a cursor
DECLARE cur CURSOR
FOR SELECT * FROM #TMP;
-- Display the status of the cursor before and after opening
-- and closing the cursor
SELECT CURSOR_STATUS('global', 'cur') AS 'After declare';
OPEN cur;
SELECT CURSOR_STATUS('global', 'cur') AS 'After Open';
CLOSE cur;
SELECT CURSOR_STATUS('global', 'cur') AS 'After Close';
-- Remove the cursor.
DEALLOCATE cur;
-- Drop the table.
DROP TABLE #TMP;
Il set di risultati è il seguente.
After declare
---------------
-1
After Open
----------
1
After Close
-----------
-1