FETCH_STATUS @@ (Transact-SQL)
Zwraca stan ostatniej kursor pobierania instrukcja wydane przeciwko wszelkie kursor aktualnie otwarte przez połączenie.
Składnia
@@FETCH_STATUS
Zwracany typ
integer
Wartość zwracana
Zwracanie wartości |
Opis |
---|---|
0 |
POBIERANIE instrukcja zakończyło się pomyślnie. |
-1 |
POBIERANIE instrukcja nie powiodła się lub wiersz był poza zestaw wyników. |
-2 |
Brak wierszy pobrania. |
Uwagi
Ponieważ @@ FETCH_STATUS globalna wszystkich kursory w połączeniu, należy starannie użyć @@ FETCH_STATUS.Po pobrania wykonaniu instrukcja , badanie @@ FETCH_STATUS musi wystąpić przed wykonaniem jakichkolwiek innych pobieranie instrukcja przeciwko innym kursor.Wartość @@ FETCH_STATUS jest niezdefiniowana, zanim wystąpiło pobiera wszystkie połączenia.
Na przykład użytkownik wykonuje pobieranie instrukcja z kursori wywołuje procedura składowana , która otwiera i przetwarzania wyniki z innym kursor.Jeżeli sterowanie jest zwracane z wywołana procedura składowana, @@ FETCH_STATUS odzwierciedla ostatniego pobrania wykonywane w procedura składowananie pobieranie instrukcja wykonane przed wywołania procedura składowana .
Aby pobrać ostatni stan pobierania określonych kursor, kwerenda fetch_status kolumna sys.dm_exec_cursors funkcja dynamicznego zarządzania.
Przykłady
W poniższym przykładzie użyto @@FETCH_STATUS do kontroli działalności kursor w WHILE pętli.
DECLARE Employee_Cursor CURSOR FOR
SELECT BusinessEntityID, JobTitle
FROM AdventureWorks2008R2.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