@@ FETCH_STATUS (języka Transact-SQL)
FileDescription
@@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