ERROR_NUMBER (Transact-SQL)ERROR_NUMBER (Transact-SQL)

APLICA-SE A: simSQL Server (a partir do 2008) simBanco de Dados SQL do Azure simSQL Data Warehouse do Azure simParallel Data Warehouse APPLIES TO: yesSQL Server (starting with 2008) yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Essa função retorna o número do erro que fez com que o bloco CATCH de um constructo TRY…CATCH fosse executado.This function returns the error number of the error that caused the CATCH block of a TRY...CATCH construct to execute.

Ícone de link do tópico Convenções de sintaxe de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxeSyntax

ERROR_NUMBER ( )  

Tipos de retornoReturn Types

intint

Valor retornadoReturn Value

Quando chamado em um bloco CATCH, ERROR_NUMBER retorna o número do erro que fez com que o bloco CATCH fosse executado.When called in a CATCH block, ERROR_NUMBER returns the error number of the error that caused the CATCH block to run.

ERROR_NUMBER retorna NULL quando chamado fora do escopo de um bloco CATCH.ERROR_NUMBER returns NULL when called outside the scope of a CATCH block.

RemarksRemarks

ERROR_NUMBER dá suporte a chamadas em qualquer lugar dentro do escopo de um bloco CATCH.ERROR_NUMBER supports calls anywhere within the scope of a CATCH block.

ERROR_NUMBER retorna um número de erro relevante, independentemente de quantas vezes ou de em que local ele é executado dentro do escopo do bloco CATCH.ERROR_NUMBER returns a relevant error number regardless of how many times it runs, or where it runs within the scope of the CATCH block. É diferente de uma função como @@ERROR, que retorna apenas um número de erro na instrução imediatamente após àquela que causa um erro.This contrasts with a function like @@ERROR, which only returns an error number in the statement immediately following the one that causes an error.

Em um bloco CATCH aninhado, ERROR_NUMBER retorna o número do erro específico do escopo do bloco CATCH que referenciou esse bloco CATCH.In a nested CATCH block, ERROR_NUMBER returns the error number specific to the scope of the CATCH block that referenced that CATCH block. Por exemplo, o bloco CATCH de um constructo TRY...CATCH externo poderia ter um constructo TRY...CATCH interno.For example, the CATCH block of an outer TRY...CATCH construct could have an inner TRY...CATCH construct. Dentro desse bloco CATCH interno, ERROR_NUMBER retorna o número do erro que invocou o bloco CATCH interno.Inside that inner CATCH block, ERROR_NUMBER returns the number of the error that invoked the inner CATCH block. Se ERROR_NUMBER é executado no bloco CATCH externo, ele retorna o número do erro que invocou esse bloco CATCH externo.If ERROR_NUMBER runs in the outer CATCH block, it returns the number of the error that invoked that outer CATCH block.

ExemplosExamples

A.A. Usando ERROR_NUMBER em um bloco CATCHUsing ERROR_NUMBER in a CATCH block

Este exemplo a seguir mostra uma instrução SELECT que gera um erro de divisão por zero.This example shows a SELECT statement that generates a divide-by-zero error. O bloco CATCH retorna o número do erro.The CATCH block returns the error number.

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.Here is the result set.

-----------

(0 row(s) affected)

ErrorNumber
-----------
8134

(1 row(s) affected)

B.B. Usando ERROR_NUMBER em um bloco CATCH com outras ferramentas de tratamento de errosUsing ERROR_NUMBER in a CATCH block with other error-handling tools

Este exemplo a seguir mostra uma instrução SELECT que gera um erro de divisão por zero.This example shows a SELECT statement that generates a divide-by-zero error. Juntamente com o número do erro, o bloco CATCH retorna informações sobre esse erro.Along with the error number, the CATCH block returns information about that error.

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.Here is the result set.

-----------

(0 row(s) affected)

ErrorNumber ErrorSeverity ErrorState  ErrorProcedure   ErrorLine  ErrorMessage
----------- ------------- ----------- ---------------  ---------- ----------------------------------
8134        16            1           NULL             4          Divide by zero error encountered.

(1 row(s) affected)

Consulte TambémSee Also

sys.messages (Transact-SQL) sys.messages (Transact-SQL)
TRY...CATCH (Transact-SQL) TRY...CATCH (Transact-SQL)
ERROR_LINE (Transact-SQL) ERROR_LINE (Transact-SQL)
ERROR_MESSAGE (Transact-SQL) ERROR_MESSAGE (Transact-SQL)
ERROR_PROCEDURE (Transact-SQL) ERROR_PROCEDURE (Transact-SQL)
ERROR_SEVERITY (Transact-SQL) ERROR_SEVERITY (Transact-SQL)
ERROR_STATE (Transact-SQL) ERROR_STATE (Transact-SQL)
RAISERROR (Transact-SQL) RAISERROR (Transact-SQL)
@@ERROR (Transact-SQL) @@ERROR (Transact-SQL)
Referência de Erros e Eventos (Mecanismo de Banco de Dados)Errors and Events Reference (Database Engine)