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 SQL no Microsoft FabricWarehouse no Microsoft Fabric
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.
Convenções de sintaxe de Transact-SQL
Sintaxe
ERROR_SEVERITY ( )
Observação
Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) 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)
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de