ERROR_SEVERITY (Transact-SQL)

Aplica-se a: simSQL Server (todas as versões compatíveis) SimBanco de Dados SQL do Azure SimInstância Gerenciada do Azure SQL simAzure Synapse Analytics simParallel 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.

Ícone de link do tópico Convenções da sintaxe Transact-SQL

Sintaxe

ERROR_SEVERITY ( )  

Observação

Para ver a sintaxe do Transact-SQL para o SQL Server 2014 e versões anteriores, confira a Documentação das versões anteriores.

Tipos de retorno

int

Valor retornado

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.

ERROR_SEVERITY retorna NULL se chamado fora do escopo de um bloco CATCH.

Comentários

ERROR_SEVERITY dá suporte a chamadas em qualquer lugar dentro do escopo de um bloco CATCH.

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. É 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.

ERROR_SEVERITY normalmente opera em um bloco CATCH aninhado. ERROR_SEVERITY retorna o valor da gravidade do erro específico do escopo do bloco CATCH que referenciou esse bloco CATCH. Por exemplo, o bloco CATCH de um constructo TRY...CATCH externo poderia ter um constructo TRY...CATCH interno. Dentro desse bloco CATCH interno, ERROR_SEVERITY retorna o valor da gravidade do erro que invocou o bloco CATCH interno. Se ERROR_SEVERITY executa no bloco CATCH externo, ele retorna o valor da gravidade do erro que invocou esse bloco CATCH externo.

Exemplos: Azure Synapse Analytics e PDW (Analytics Platform System)

a. Usando ERROR_SEVERIRTY em um bloco CATCH

Este exemplo mostra um procedimento armazenado que gera um erro de divisão por zero. ERROR_SEVERITY retorna o valor da gravidade desse erro.

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

Este é o conjunto de resultados.

-----------

(0 row(s) affected)

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

(1 row(s) affected)

B. Usando ERROR_SEVERITY em um bloco CATCH com outras ferramentas de tratamento de erros

Este exemplo a seguir mostra uma instrução SELECT que gera um erro de divisão por zero. O procedimento armazenado retorna informações sobre o 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  

Este é 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)

Consulte Também

sys.messages (Transact-SQL)
TRY...CATCH (Transact-SQL)
ERROR_LINE (Transact-SQL)
ERROR_MESSAGE (Transact-SQL)
ERROR_NUMBER (Transact-SQL)
ERROR_PROCEDURE (Transact-SQL)
ERROR_STATE (Transact-SQL)
RAISERROR (Transact-SQL)
@@ERROR (Transact-SQL)
Referência de Erros e Eventos (Mecanismo de Banco de Dados)