Compartilhar via


ERROR_SEVERITY (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsPDW (Analytics Platform System)Ponto de extremidade de análise do SQLWarehouse 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)