Udostępnij za pośrednictwem


@@ FETCH_STATUS (języka Transact-SQL)

@@FETCH_STATUS

Zwracany typ

Liczba całkowita

Return Value

Zwracanie wartości

Description

0

System operacyjny.

-1

FileVersion

-2

Brakuje pobranego wiersza.

Remarks

Ponieważ funkcja @@FETCH_STATUS działa globalnie wobec wszystkich kursorów występujących w połączeniu, należy używać jej ostrożnie.Po wykonaniu instrukcji FETCH należy wykonać test działania funkcji @@FETCH_STATUS. Dopiero wtedy można wykonać kolejną instrukcję FETCH wobec innego kursora.Zanim w ramach połączenia zostaną wykonane jakiekolwiek operacje pobrania, wartość funkcji @@FETCH_STATUS jest niezdefiniowana.

Na przykład: użytkownik wykonuje instrukcję FETCH wobec jednego kursora, po czym wywołuje procedurę składowaną, która pobiera i przetwarza wyniki z innego kursora.Z chwilą przekazania kontroli z wywołanej procedury składowanej stan funkcji @@FETCH_STATUS uwzględnia wykonanie ostatniej instrukcji FETCH (wobec procedury składowanej), a nie instrukcji FETCH sprzed wywołania procedury.

Aby pobrać ostatni stan pobierania określonych kursor, kwerendy fetch_status kolumnasys.dm_exec_cursors funkcja dynamicznego zarządzania.

Przykłady

W przykładzie poniżej funkcja @@FETCH_STATUS służy do kontrolowania działań kursora w pętli 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