Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Abre um cursor do servidor Transact-SQL e preenche o cursor executando a instrução Transact-SQL especificada na instrução DECLARE CURSOR ou SET cursor_variable .
Transact-SQL convenções de sintaxe
Syntax
OPEN { { [ GLOBAL ] cursor_name } | cursor_variable_name }
Arguments
GLOBAL
Especifica que cursor_name se refere a um cursor global.
cursor_name
É o nome de um cursor declarado. Se existir um cursor global e um cursor local com cursor_name como nome, cursor_name refere-se ao cursor global se GLOBAL for especificado; caso contrário, cursor_name refere-se ao cursor local.
cursor_variable_name
É o nome de uma variável de cursor que faz referência a um cursor.
Remarks
Se o cursor for declarado com a opção INSENSITIVE ou STATOR, OPEN criará uma tabela temporária para armazenar o conjunto de resultados. OPEN falha quando o tamanho de qualquer linha no conjunto de resultados excede o tamanho máximo da linha para tabelas do SQL Server. Se o cursor for declarado com a opção KEYSET, OPEN criará uma tabela temporária para manter o conjunto de teclas. As tabelas temporárias são armazenadas em tempdb.
Depois que um cursor for aberto, use a função @@CURSOR_ROWS para receber o número de linhas qualificadas no último cursor aberto.
Note
O SQL Server não oferece suporte à geração de cursores de Transact-SQL estáticos ou controlados por conjunto de chaves de forma assíncrona. Transact-SQL operações do cursor, como OPEN ou FETCH, são agrupadas em lote, portanto, não há necessidade da geração assíncrona de cursores Transact-SQL. O SQL Server continua a oferecer suporte a cursores de servidor assíncronos orientados por conjunto de chaves ou estáticos de interface de programação de aplicativos (API) onde a baixa latência OPEN é uma preocupação, devido a viagens de ida e volta do cliente para cada operação do cursor.
Examples
O exemplo a seguir abre um cursor e busca todas as linhas.
DECLARE Employee_Cursor CURSOR FOR
SELECT LastName, FirstName
FROM AdventureWorks2022.HumanResources.vEmployee
WHERE LastName like 'B%';
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;
Ver também
FECHAR (Transact-SQL)
@@CURSOR_ROWS (Transact-SQL)
DESALOCAR (Transact-SQL)
DECLARAR CURSOR (Transact-SQL)
BUSCAR (Transact-SQL)