Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza danych SQL w usłudze Microsoft Fabric
Funkcja ta zwraca status ostatniego wydania kursora FETCH względem dowolnego kursora obecnie otwartego przez połączenie.
Transact-SQL konwencje składni
Składnia
@@FETCH_STATUS
Zwracany typ
integer
Wartość zwracana
| Wartość zwracana | Description |
|---|---|
| 0 | Oświadczenie FETCH zakończyło się sukcesem. |
| -1 | Instrukcja FETCH zawiodła lub wiersz przekroczył zbiór wyników. |
| -2 | Brakuje wiersza, który przyniósł. |
| -9 | Kursor nie wykonuje operacji pobierania. |
Uwagi
Ponieważ @@FETCH_STATUS jest globalny dla wszystkich kursorów na połączeniu, używaj go ostrożnie. Po wykonaniu instrukcji FETCH test dla @@FETCH_STATUS musi zostać wykonany przed kolejnym wykonaniem instrukcji FETCH na innym kursorze.
@@FETCH_STATUS jest niezdefiniowana przed jakimikolwiek pobieraniami na połączeniu.
Na przykład użytkownik wykonuje polecenie FETCH z jednego kursora, a następnie wywołuje procedurę przechowywaną, która otwiera się i przetwarza wyniki z innego kursora. Gdy kontrola wraca z wywołanej procedury przechowywanej, odzwierciedla @@FETCH_STATUS ostatnie wykonanie FETCH wewnątrz tej procedury, a nie polecenie FETCH wykonane przed wywołaniem procedury przechowywanej.
Aby pobrać ostatni status pobierania konkretnego kursora, zapytaj kolumnę fetch_status funkcji zarządzania dynamicznego sys.dm_exec_cursors .
Przykłady
Ten przykład służy @@FETCH_STATUS do sterowania aktywnościami kursora w pętli WHILE .
DECLARE Employee_Cursor CURSOR FOR
SELECT BusinessEntityID, JobTitle
FROM AdventureWorks2022.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