ERROR_SEVERITY (Transact-SQL)ERROR_SEVERITY (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 valor da gravidade do erro em que um erro ocorre se esse erro que fez com que o bloco CATCH de um constructo TRY...CATCH fosse executado.This function returns the severity value of the error where an error occurs, if that error 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_SEVERITY ( )  

Tipos de retornoReturn Types

intint

Valor retornadoReturn Value

Quando chamado em um bloco CATCH em que um erro ocorre, ERROR_SEVERITY retorna o valor da gravidade do erro que fez esse bloco CATCH ser executado.When called in a CATCH block where an error occurs, ERROR_SEVERITY returns the severity value of the error that caused the CATCH block to run.

ERROR_SEVERITY retorna NULL se chamado fora do escopo de um bloco CATCH.ERROR_SEVERITY returns NULL if called outside the scope of a CATCH block.

RemarksRemarks

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

ERROR_SEVERITY retorna o valor da gravidade de um erro, independentemente de quantas vezes ou de em que local ele é executado dentro do escopo do bloco CATCH.ERROR_SEVERITY returns the error severity value of an error, 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.

ERROR_SEVERITY normalmente opera em um bloco CATCH aninhado.ERROR_SEVERITY typically operates in a nested CATCH block. ERROR_SEVERITY retorna o valor da gravidade do erro específico do escopo do bloco CATCH que referenciou esse bloco CATCH.ERROR_SEVERITY returns the error severity value 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_SEVERITY retorna o valor da gravidade do erro que invocou o bloco CATCH interno.Inside that inner CATCH block, ERROR_SEVERITY returns the severity value of the error that invoked the inner CATCH block. Se ERROR_SEVERITY executa no bloco CATCH externo, ele retorna o valor da gravidade do erro que invocou esse bloco CATCH externo.If ERROR_SEVERITY runs in the outer CATCH block, it returns the error severity value of the error that invoked that outer CATCH block.

Exemplos: Azure SQL Data WarehouseAzure SQL Data Warehouse e Parallel Data WarehouseParallel Data WarehouseExamples: Azure SQL Data WarehouseAzure SQL Data Warehouse and Parallel Data WarehouseParallel Data Warehouse

A.A. Usando ERROR_SEVERIRTY em um bloco CATCHUsing ERROR_SEVERITY in a CATCH block

Este exemplo mostra um procedimento armazenado que gera um erro de divisão por zero.This example shows a stored procedure that generates a divide-by-zero error. ERROR_SEVERITY retorna o valor da gravidade desse erro.ERROR_SEVERITY returns the severity value of that error.

BEGIN TRY  
    -- Generate a divide-by-zero error.  
    SELECT 1/0;  
END TRY  
BEGIN CATCH  
    SELECT ERROR_SEVERITY() AS ErrorSeverity;  
END CATCH;  
GO  

Aqui está o conjunto de resultados.Here is the result set.

-----------

(0 row(s) affected)

ErrorSeverity
-------------
16

(1 row(s) affected)

B.B. Usando ERROR_SEVERITY em um bloco CATCH com outras ferramentas de tratamento de errosUsing ERROR_SEVERITY 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. O procedimento armazenado retorna informações sobre o erro.The stored procedure returns information about the 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_NUMBER (Transact-SQL) ERROR_NUMBER (Transact-SQL)
ERROR_PROCEDURE (Transact-SQL) ERROR_PROCEDURE (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)