Exportar (0) Imprimir
Expandir todo
Expandir Minimizar

@@FETCH_STATUS (Transact-SQL)

Devuelve el estado de la última instrucción FETCH de cursor emitida para cualquier cursor abierto en ese momento por la conexión.

Icono de vínculo a temas Convenciones de sintaxis de Transact-SQL


@@FETCH_STATUS

Valor devuelto Descripción

0

La instrucción FETCH se ejecutó correctamente.

-1

La instrucción FETCH no se ejecutó correctamente o la fila estaba más allá del conjunto de resultados.

-2

Falta la fila recuperada.

Al ser @@FETCH_STATUS global para todos los cursores de una conexión, debe usarse con cuidado. Después de ejecutar una instrucción FETCH, la comprobación de @@FETCH_STATUS se debe realizar antes de que se ejecute otra instrucción FETCH sobre otro cursor. El valor de @@FETCH_STATUS no está definido antes de producirse las recuperaciones en la conexión.

Por ejemplo, supongamos que un usuario ejecuta una instrucción FETCH sobre un cursor y a continuación llama a un procedimiento almacenado que abre y procesa los resultados de otro cursor. Cuando vuelve el control desde el procedimiento almacenado llamado, @@FETCH_STATUS reflejará la última instrucción FETCH ejecutada en el procedimiento almacenado, no la ejecutada antes de llamar al procedimiento.

Para recuperar el último estado recuperado de un cursor específico, realice una consulta en la columna fetch_status de la función de administración dinámica sys.dm_exec_cursors.

Este ejemplo utiliza @@FETCH_STATUS para controlar las actividades del cursor en un bucle WHILE.

DECLARE Employee_Cursor CURSOR FOR
SELECT EmployeeID, Title FROM AdventureWorks.HumanResources.Employee;
OPEN Employee_Cursor;
FETCH NEXT FROM Employee_Cursor;
WHILE @@FETCH_STATUS = 0
   BEGIN
      FETCH NEXT FROM Employee_Cursor;
   END;
CLOSE Employee_Cursor;
DEALLOCATE Employee_Cursor;
GO

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft