CLOSE (Transact-SQL)
Cierra un cursor abierto mediante la liberación del conjunto de resultados actual y todos los bloqueos de cursor mantenidos en las filas en las que está colocado. CLOSE deja las estructuras de datos accesibles para que se puedan volver a abrir, pero las capturas y las actualizaciones posicionadas no se permiten hasta que se vuelva a abrir el cursor. CLOSE debe ejecutarse en un cursor abierto, por lo que no se permite en cursores que solo están declarados o que ya están cerrados.
Convenciones de sintaxis de Transact-SQL
Sintaxis
CLOSE { { [ GLOBAL ] cursor_name } | cursor_variable_name }
Argumentos
GLOBAL
Especifica que cursor_name hace referencia a un cursor global.cursor_name
Es el nombre de un cursor abierto. Si hay un cursor global y otro local con el nombre cursor_name, cursor_name hace referencia al cursor global si se especifica GLOBAL; de lo contrario, cursor_name hace referencia al cursor local.cursor_variable_name
Es el nombre de una variable de cursor asociada a un cursor abierto.
Ejemplos
En el ejemplo siguiente se muestra la posición correcta de la instrucción CLOSE en un proceso de cursores.
DECLARE Employee_Cursor CURSOR FOR
SELECT EmployeeID, Title FROM AdventureWorks2012.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