CLOSE (Transact-SQL)

Fecha um cursor aberto liberando o conjunto de resultados atual e qualquer bloqueio de cursor mantido nas linhas onde o cursor é posicionado. CLOSE deixa as estruturas de dados disponíveis para reabertura, mas as atualizações buscadas e posicionadas não são permitidas até que o cursor seja reaberto. CLOSE deve ser emitido em um cursor aberto; CLOSE não é permitido em cursores que somente foram declarados ou estão fechados.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

CLOSE { { [ GLOBAL ] cursor_name } | cursor_variable_name }

Argumentos

  • GLOBAL
    Especifica que cursor_name se refere a um cursor global.

  • cursor_name
    É o nome de um cursor aberto. Se um cursor global e um cursor local existirem com cursor_name como nome, cursor_name fará referência ao cursor global quando GLOBAL for especificado; caso contrário, cursor_name fará referência ao cursor local.

  • cursor_variable_name
    É o nome de uma variável de cursor associada a um cursor aberto.

Exemplos

O exemplo a seguir mostra a colocação correta da instrução CLOSE em um processo com base em cursor.

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