@@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 SQL 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.
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_configure cursor threshold größer als 0 ist und die Anzahl der Zeilen im Cursorresultset größer als der Cursorschwellenwert ist.
Beispiel
Im folgenden Beispiel wird ein Cursor deklariert und SELECT zur Anzeige des Werts von @@CURSOR_ROWS verwendet. 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 AdventureWorks2008R2;
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
Im Folgenden werden die Resultsets aufgeführt.
-----------
0
LastName
---------------
Sanchez
-----------
-1
Siehe auch