@@CURSOR_ROWS (Transact-SQL)

Devuelve el número de filas certificadas que se encuentran en el último cursor abierto en la conexión. Para mejorar el rendimiento, MicrosoftSQL Server puede llenar asincrónicamente los cursores estáticos y de conjunto de claves de gran tamaño. Puede llamar a @@CURSOR_ROWS para determinar que el número de filas que cumplan las condiciones del cursor se recuperen en el momento en que se llama a @@CURSOR_ROWS.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

@@CURSOR_ROWS

Tipos de valor devueltos

integer

Valor devuelto

Valor devuelto

Descripción

-m

El cursor se llena de forma asincrónica. El valor devuelto (-m) es el número de filas que contiene actualmente el conjunto de claves.

-1

El cursor es dinámico. Como los cursores dinámicos reflejan todos los cambios, el número de filas correspondientes al cursor cambia constantemente. Nunca se puede afirmar que se han recuperado todas las filas que correspondan.

0

No se han abierto cursores, no hay filas calificadas para el último cursor abierto, o éste se ha cerrado o su asignación se ha cancelado.

n

El cursor está completamente lleno. El valor devuelto (n) es el número total de filas del cursor.

Notas

El número que devuelve @@CURSOR_ROWS es negativo cuando el último cursor se ha abierto de forma asincrónica. Los cursores controlados por conjunto de claves y los estáticos se abren de forma asincrónica cuando el valor de sp_configure cursor threshold es mayor que cero y el número de filas del conjunto de resultados del cursor es mayor que su umbral.

Ejemplos

En este ejemplo se declara un cursor y se utiliza SELECT para mostrar el valor de @@CURSOR_ROWS. La opción tiene el valor 0 antes de abrir el cursor y el valor -1 indica que el conjunto de claves del cursor se está llenando de forma asincrónica.

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           

Los conjuntos de resultados son:

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

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

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