Sdílet prostřednictvím


@@CURSOR_ROWS (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Tato funkce vrací počet kvalifikačních řádků, které jsou aktuálně v posledním kurzoru otevřeném na spojení. Pro zlepšení výkonu může SQL Server asynchronně doplňovat velké klíčové sady a statické kurzory. @@CURSOR_ROWS lze volat k určení, že počet řádků, které splňují podmínky kurzoru, je v době @@CURSOR_ROWS volání získán.

Transact-SQL konvence syntaxe

Syntaxe

@@CURSOR_ROWS

Návratové typy

int

Návratová hodnota

Návratová hodnota Description
-m Kurzor se objevuje asynchronně. Vrácená hodnota (-m) je počet řádků aktuálně v klíčové sadě.
-1 Kurzor je dynamický. Protože dynamické kurzory odrážejí všechny změny, počet řádků, které pro kurzor splňují, se neustále mění. Kurzor nemusí nutně načíst všechny kvalifikované řádky.
0 Kurzor není otevřený, žádné řádky nesplňují podmínky pro poslední otevřený kurzor, ani poslední otevřený kurzor není uzavřen nebo deallocated.
n Kurzor je plně obsazený. Vrácená hodnota (n) je celkový počet řádků v kurzoru.

Poznámky

@@CURSOR_ROWS vrátí záporné číslo, pokud se poslední kurzor otevřel asynchronně. Klíčové ovladače nebo statické kurzory se otevřou asynchronně, pokud hodnota pro sp_configure práh kurzoru překročí 0, a počet řádků v sadě výsledků kurzoru překročí práh kurzoru.

Examples

Tento příklad nejprve deklaruje kurzor a poté použije SELECT zobrazení hodnoty @@CURSOR_ROWS. Nastavení má hodnotu před 0 otevřením kurzoru a pak hodnotu -1, což označuje, že sada kurzoru se naplní asynchronně.

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

Zde jsou výsledky souborů.

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

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

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