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
Esta função devolve o estado da última instrução FETCH do cursor emitida contra qualquer cursor atualmente aberto pela ligação.
Transact-SQL convenções de sintaxe
Sintaxe
@@FETCH_STATUS
Tipo de Retorno
integer
Valor de retorno
| Valor de retorno | Description |
|---|---|
| 0 | A declaração FETCH foi bem-sucedida. |
| -1 | A instrução FETCH falhou ou a linha estava para além do conjunto de resultados. |
| -2 | A fila que foi buscar está em falta. |
| -9 | O cursor não está a realizar uma operação de busca. |
Observações
Como @@FETCH_STATUS é global para todos os cursores de uma ligação, usa-o com cuidado. Após a execução da instrução FETCH, o teste para @@FETCH_STATUS deve ocorrer antes de qualquer outra instrução FETCH ser executada contra outro cursor.
@@FETCH_STATUS é indefinida antes de quaisquer fetches terem ocorrido na ligação.
Por exemplo, um utilizador 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 controlo retorna desse procedimento armazenado chamado, @@FETCH_STATUS reflete o último FETCH executado dentro desse procedimento armazenado, não a instrução FETCH executada antes da chamada ao procedimento armazenado.
Para obter o estado de última busca de um cursor específico, consulte a coluna fetch_status da função de gestão dinâmica de sys.dm_exec_cursors .
Examples
Este exemplo serve @@FETCH_STATUS para controlar as atividades do cursor num WHILE ciclo.
DECLARE Employee_Cursor CURSOR FOR
SELECT BusinessEntityID, JobTitle
FROM AdventureWorks2022.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