@@CURSOR_ROWS (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Microsoft Fabric

Denna funktion returnerar antalet kvalificerande rader som för närvarande finns i den senaste markören som öppnades på anslutningen. För att förbättra prestandan kan SQL Server fylla stora tangentuppsättningar och statiska markörer asynkront. @@CURSOR_ROWS kan anropas för att avgöra att antalet rader som kvalificerar för en markör hämtas vid anropstillfället @@CURSOR_ROWS .

Transact-SQL syntaxkonventioner

Syntax

@@CURSOR_ROWS

Returtyper

int

Returvärde

Returvärde Description
-m Markören fylls asynkront. Värdet som returneras (-m) är antalet rader som för närvarande finns i nyckeluppsättningen.
-1 Markören är dynamisk. Eftersom dynamiska markörer speglar alla förändringar ändras antalet rader som kvalificerar för markören ständigt. Markören hämtar inte nödvändigtvis alla kvalificerade rader.
0 Inga markörer är öppna, inga rader kvalificerade för den senast öppnade markören, eller så är den senast öppnade markören stängd eller utplacerad.
n Markören är fullt fylld. Värdet som returneras (n) är det totala antalet rader i markören.

Anmärkningar

@@CURSOR_ROWS returnerar ett negativt tal om den sista markören öppnades asynkront. Tangentuppsättningsdrivrutiner eller statiska markörer öppnas asynkront om värdet för sp_configure markörtröskeln överstiger 0, och antalet rader i kursorresultatuppsättningen överstiger markörtröskeln.

Examples

Detta exempel deklarerar först en markör och använder SELECT sedan för att visa värdet av @@CURSOR_ROWS. Inställningen har värdet på 0 innan markören öppnas och sedan värdet , -1för att indikera att markörtangenten fylls asynkront.

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

Här är resultatuppsättningarna.

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

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

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