@@FETCH_STATUS (Transact-SQL)
TOC
Recolher sumário
Expandir sumário

@@FETCH_STATUS (Transact-SQL)

Retorna o status do último cursor que a instrução FETCH emitiu em relação a qualquer cursor atualmente aberto pela conexão.

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


@@FETCH_STATUS

Valor de retorno

Descrição

0

A instrução FETCH foi bem-sucedida.

-1

A instrução FETCH falhou ou a linha estava além do conjunto de resultados.

-2

A linha buscada está ausente.

Como @@FETCH_STATUS é global para todos os cursores em uma conexão, use-o com cuidado. Depois que uma instrução FETCH é executada, o teste para @@FETCH_STATUS deve ocorrer antes que qualquer outra instrução FETCH seja executada em outro cursor. O valor de @@FETCH_STATUS é indefinido antes de ocorrer qualquer busca na conexão.

Por exemplo, um usuário executa uma instrução FETCH a partir de um cursor e, depois, chama um procedimento armazenado que abre e processa os resultados de outro cursor. Quando o controle é retornado a partir do procedimento armazenado chamado, @@FETCH_STATUS reflete o último FETCH executado no procedimento armazenado, e não a instrução FETCH executada antes que o procedimento armazenado fosse chamado.

Para recuperar o último status chamado de um cursor específico, consulte a coluna fetch_status da função de gerenciamento dinâmico sys.dm_exec_cursors.

Este exemplo usa @@FETCH_STATUS para controlar atividades de cursor em um loop 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

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2016 Microsoft