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
Base de Dados SQL do Azure
Instância Gerida do Azure SQL
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Ponto de Extremidade de Análise SQL no Microsoft Fabric
Armazém no Microsoft Fabric
Base de Dados SQL no Microsoft Fabric
Esta função devolve o número de erro do erro que causou o bloco CATCH de um TRY... CATCH para executar.
Transact-SQL convenções de sintaxe
Sintaxe
ERROR_NUMBER ( )
Tipos de devolução
int
Valor de retorno
Quando chamado a um bloco CATCH, ERROR_NUMBER devolve o número de erro do erro que causou a execução do bloco CATCH.
ERROR_NUMBER retorna NULL quando chamado fora do âmbito de um bloco CATCH.
Observações
ERROR_NUMBER suporta chamadas em qualquer lugar dentro do âmbito de um bloco CATCH.
ERROR_NUMBER devolve um número de erro relevante independentemente de quantas vezes seja executado, ou onde seja executado dentro do âmbito do CATCH bloco. Isto contrasta com uma função como @@ERROR, que só devolve um número de erro na instrução imediatamente após a que causa o erro.
Num bloco aninhado CATCH , ERROR_NUMBER devolve o número de erro específico do âmbito do CATCH bloco que referenciava esse CATCH bloco. Por exemplo, o bloco CATCH de um TRY exterior... A construção CATCH pode ter uma construção interior TRY...CATCH . Dentro desse bloco interior CATCH , ERROR_NUMBER devolve o número do erro que invocou o bloco interior CATCH . Se ERROR_NUMBER for executado no bloco exterior CATCH , devolve o número do erro que invocou esse bloco exterior CATCH .
Examples
A. Usar ERROR_NUMBER num bloco CATCH
Este exemplo mostra uma SELECT instrução que gera um erro de divisão por zero. O bloco CATCH devolve o número de erro.
BEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1/0;
END TRY
BEGIN CATCH
SELECT ERROR_NUMBER() AS ErrorNumber;
END CATCH;
GO
Aqui está o conjunto de resultados.
-----------
(0 row(s) affected)
ErrorNumber
-----------
8134
(1 row(s) affected)
B. Usar ERROR_NUMBER num bloco CATCH com outras ferramentas de gestão de erros
Este exemplo mostra uma SELECT instrução que gera um erro de divisão por zero. Juntamente com o número de erro, o bloco CATCH devolve informações sobre esse erro.
BEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1/0;
END TRY
BEGIN CATCH
SELECT
ERROR_NUMBER() AS ErrorNumber,
ERROR_SEVERITY() AS ErrorSeverity,
ERROR_STATE() AS ErrorState,
ERROR_PROCEDURE() AS ErrorProcedure,
ERROR_LINE() AS ErrorLine,
ERROR_MESSAGE() AS ErrorMessage;
END CATCH;
GO
Aqui está o conjunto de resultados.
-----------
(0 row(s) affected)
ErrorNumber ErrorSeverity ErrorState ErrorProcedure ErrorLine ErrorMessage
----------- ------------- ----------- --------------- ---------- ----------------------------------
8134 16 1 NULL 4 Divide by zero error encountered.
(1 row(s) affected)
Ver também
sys.messages (Transact-SQL)
TENTE... CAPTURAR (Transact-SQL)
LINHA_ERRO (Transact-SQL)
MENSAGEM_DE_ERRO (Transact-SQL)
PROCEDIMENTO_ERRO (Transact-SQL)
ERROR_SEVERITY (Transact-SQL)
ERROR_STATE (Transact-SQL)
RAISERROR (Transact-SQL)
@@ERROR (Transact-SQL)
Referência de erros e eventos (Mecanismo de Banco de Dados)