@@FETCH_STATUS (Transact-SQL)
Restituisce lo stato dell'ultima istruzione di cursore FETCH eseguita su uno dei cursori aperti dalla connessione.
Convenzioni della sintassi Transact-SQL
Sintassi
@@FETCH_STATUS
Tipo restituito
integer
Valore restituito
Valore restituito | Descrizione |
---|---|
0 |
L'istruzione FETCH ha avuto esito positivo. |
-1 |
L'istruzione FETCH ha avuto esito negativo oppure la riga non è compresa nel set di risultati. |
-2 |
La riga recuperata è mancante. |
Osservazioni
Poiché la funzione @@FETCH_STATUS è globale per tutti i cursori di una connessione, utilizzarla con attenzione. Dopo l'esecuzione di un'istruzione FETCH, prima di eseguire istruzioni FETCH aggiuntive con un altro cursore è necessario eseguire il test della funzione @@FETCH_STATUS. Il valore di questa funzione viene definito solo dopo l'esecuzione di operazioni di recupero nella connessione.
Un utente, ad esempio, può eseguire un'istruzione FETCH da un cursore e richiamare quindi una stored procedure che apre ed elabora i risultati di un altro cursore. Al termine della stored procedure richiamata, nella funzione @@FETCH_STATUS è riportato il risultato dell'ultima istruzione FETCH eseguita nella stored procedure, non dell'istruzione FETCH eseguita prima della chiamata della stored procedure.
Per recuperare l'ultimo stato di un cursore specifico, eseguire una query nella colonna fetch_status della funzione a gestione dinamica sys.dm_exec_cursors.
Esempi
In questo esempio viene utilizzata la funzione @@FETCH_STATUS per controllare le attività del cursore in un ciclo WHILE.
DECLARE Employee_Cursor CURSOR FOR
SELECT EmployeeID, Title FROM AdventureWorks.HumanResources.Employee;
OPEN Employee_Cursor;
FETCH NEXT FROM Employee_Cursor;
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM Employee_Cursor;
END;
CLOSE Employee_Cursor;
DEALLOCATE Employee_Cursor;
GO
Vedere anche
Riferimento
Funzioni per i cursori (Transact-SQL)
FETCH (Transact-SQL)