Udostępnij za pośrednictwem


FETCH_STATUS @@ (Transact-SQL)

Zwraca stan ostatniej kursor pobierania instrukcja wydane przeciwko wszelkie kursor aktualnie otwarte przez połączenie.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

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