@@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.
Convenciones de sintaxis de Transact-SQL
Sintaxis
@@FETCH_STATUS
Tipo de valor devuelto
integer
Valor devuelto
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. |
Notas
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.
Ejemplos
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
Vea también
Referencia
Funciones del cursor (Transact-SQL)
FETCH (Transact-SQL)