Compartilhar via


ERROR_SEVERITY (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsAnalytics Platform System (PDW)Ponto de extremidade de análise de SQL no Microsoft FabricDepósito no Microsoft FabricBanco de dados SQL no Microsoft Fabric

Essa função retorna o valor de severidade do erro em que ocorre um erro, se esse erro causou a execução do CATCH bloco de um TRY...CATCH constructo.

Convenções de sintaxe de Transact-SQL

Sintaxe

ERROR_SEVERITY ( )

Tipos de retorno

int

Valor de retorno

Quando chamado em um CATCH bloco em que ocorre um erro, ERROR_SEVERITY retorna o valor de severidade do erro que causou a execução do CATCH bloco.

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

Comentários

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

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. Isso contrasta com uma função como @@ERROR, que retorna apenas um número de erro na instrução imediatamente após a 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 CATCH bloco de uma construção externa TRY...CATCH pode ter uma construção interna TRY...CATCH . 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. Usar ERROR_SEVERITY 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

Veja a seguir o conjunto de resultados.

-----------

(0 row(s) affected)

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

(1 row(s) affected)

B. Usar 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

Veja a seguir 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)