Udostępnij za pomocą


@@CURSOR_ROWS (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBaza danych SQL w usłudze Microsoft Fabric

Funkcja ta zwraca liczbę kwalifikujących się wierszy aktualnie w ostatnim kursorze otwartym na połączeniu. Aby poprawić wydajność, SQL Server może asynchronicznie wypełniać duże zestawy kluczy i statyczne kursory. @@CURSOR_ROWS można wywołać, aby określić, że liczba wierszy kwalifikujących się do kursora jest pobierana w momencie @@CURSOR_ROWS wywołania.

Transact-SQL konwencje składni

Składnia

@@CURSOR_ROWS

Typy zwracane

int

Wartość zwracana

Wartość zwracana Description
-m Kursor wypełnia się asynchronicznie. Wartość zwracana (-m) to liczba wierszy aktualnie w zestawie kluczy.
-1 Kursor jest dynamiczny. Ponieważ dynamiczne kursory odzwierciedlają wszystkie zmiany, liczba wierszy kwalifikujących się dla kursora stale się zmienia. Kursor niekoniecznie pobiera wszystkie kwalifikowane wiersze.
0 Nie ma otwartych kursorów, nie ma wierszy kwalifikujących się do ostatniego otwartego kursora, ani ostatnio otwarty kursor nie jest zamknięty lub deallokowany.
n Kursor jest w pełni zajęty. Wartość zwracana (n) to łączna liczba wierszy w kursorze.

Uwagi

@@CURSOR_ROWS zwraca wartość ujemną, jeśli ostatni kursor otworzył się asynchronicznie. Sterowniki kluczy lub statyczne kursory otwierają się asynchronicznie, jeśli wartość dla progu sp_configure kursora przekracza 0, a liczba wierszy w zestawie wyników kursora przekracza próg kursora.

Przykłady

Ten przykład najpierw deklaruje kursor, a następnie używa do SELECT wyświetlania wartości .@@CURSOR_ROWS Ustawienie ma wartość przed 0 otwarciem kursora, a następnie wartość -1, co wskazuje, że zestaw kluczy kursora wypełnia się asynchronicznie.

USE AdventureWorks2022;
GO

SELECT @@CURSOR_ROWS;

DECLARE Name_Cursor CURSOR
    FOR SELECT LastName, @@CURSOR_ROWS
        FROM Person.Person;

OPEN Name_Cursor;

FETCH NEXT FROM Name_Cursor;

SELECT @@CURSOR_ROWS;

CLOSE Name_Cursor;

DEALLOCATE Name_Cursor;
GO

Oto zestawy wyników.

-----------
0

LastName   (No column name)   ROWSTAT
---------  -----------------  ---------
Sánchez    -1                 NULL

-----------
-1