Delen via


@@CURSOR_ROWS (Transact-SQL)

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric

Deze functie geeft het aantal kwalificerende rijen terug dat momenteel in de laatst geopende cursor op de verbinding stond. Om de prestaties te verbeteren kan SQL Server grote toetsen en statische cursors asynchroon invullen. @@CURSOR_ROWS kan worden aangeroepen om te bepalen dat het aantal rijen dat voor een cursor in aanmerking komt, op het moment van de @@CURSOR_ROWS oproep wordt opgehaald.

Transact-SQL syntaxis-conventies

Syntaxis

@@CURSOR_ROWS

Retourtypen

int

Retourwaarde

Retourwaarde Description
-m De cursor vult zich asynchroon. De waarde die wordt teruggegeven (-m) is het aantal rijen dat momenteel in de sleutelset zit.
-1 De cursor is dynamisch. Omdat dynamische cursors alle wijzigingen weerspiegelen, verandert het aantal rijen dat voor de cursor in aanmerking komt voortdurend. De cursor haalt niet per se alle gekwalificeerde rijen op.
0 Er zijn geen cursors open, geen rijen gekwalificeerd voor de laatst geopende cursor, of de laatst geopende cursor is gesloten of verdeeld.
n De cursor is volledig bevolkt. De teruggegeven waarde (n) is het totale aantal rijen in de cursor.

Opmerkingen

@@CURSOR_ROWS geeft een negatief getal terug als de laatste cursor asynchroon geopend is. Keyset-driver of statische cursors openen asynchroon als de waarde voor sp_configure cursordrempel hoger is 0dan , en het aantal rijen in de cursorresultaatset de cursordrempel overschrijdt.

Voorbeelden

Dit voorbeeld declareert eerst een cursor en gebruikt SELECT het vervolgens om de waarde van weer @@CURSOR_ROWSte geven. De instelling heeft een waarde van 0 voordat de cursor opent en vervolgens een waarde van -1, om aan te geven dat de cursortoetsenset asynchroon wordt invuld.

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

Hier zijn de resultatensets.

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

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

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