@@CURSOR_ROWS (Transact-SQL)

Gibt die Anzahl der kennzeichnenden Zeilen zurück, die sich aktuell im letzten für die Verbindung geöffneten Cursor befinden. Zur Verbesserung der Leistung kann MicrosoftSQL Server große statische und keysetgesteuerte Cursor asynchron auffüllen. @@CURSOR_ROWS kann aufgerufen werden, um zu bestimmen, dass die Anzahl der einen Cursor kennzeichnenden Zeilen zum Zeitpunkt des Aufrufens von @@CURSOR_ROWS abgerufen wurden.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

@@CURSOR_ROWS

Rückgabetypen

integer

Rückgabewert

Rückgabewert

Beschreibung

-m

Der Cursor wird asynchron aufgefüllt. Der zurückgegebene Wert (-m) entspricht der Anzahl der aktuell im Keyset vorhandenen Zeilen.

-1

Der Cursor ist dynamisch. Da dynamische Cursor alle Änderungen widerspiegeln, ändert sich die Anzahl der Zeilen, die den Cursor kennzeichnen, ständig. Es kann nie definitiv mitgeteilt werden, dass alle gekennzeichneten Zeilen abgerufen wurden.

0

Es wurden keine Cursor geöffnet, keine Zeilen kennzeichnen den zuletzt geöffneten Cursor, oder der zuletzt geöffnete Cursor wurde geschlossen oder seine Zuordnung aufgehoben.

n

Der Cursor ist vollständig aufgefüllt. Der zurückgegebene Wert (n) entspricht der Gesamtanzahl der Zeilen im Cursor.

Hinweise

Die von @@CURSOR_ROWS zurückgegebene Zahl ist negativ, wenn der letzte Cursor asynchron geöffnet wurde. Keysetgesteuerte oder statische Cursor werden asynchron geöffnet, wenn der Wert für sp_configurecursor threshold größer als 0 ist und die Anzahl der Zeilen im Cursorresultset größer als die Cursorschwelle ist.

Beispiele

Dieses Beispiel deklariert einen Cursor und verwendet SELECT zum Anzeigen des Wertes von @@CURSOR_ROWS. Die Einstellung hat den Wert 0, bevor der Cursor geöffnet wird, und den Wert -1, um anzugeben, dass das Keyset des Cursors asynchron aufgefüllt wird.

USE AdventureWorks;
GO
SELECT @@CURSOR_ROWS;
DECLARE Name_Cursor CURSOR FOR
SELECT LastName ,@@CURSOR_ROWS FROM Person.Contact;
OPEN Name_Cursor;
FETCH NEXT FROM Name_Cursor;
SELECT @@CURSOR_ROWS;
CLOSE Name_Cursor;
DEALLOCATE Name_Cursor;
GO           

Im Folgenden werden die Resultsets aufgeführt:

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

LastName       
---------------
Achong          

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