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 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