Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Azure Synapse Analytics
PDW (Analytics Platform System)
Ponto de extremidade de análise do SQL
Warehouse 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)
Conteúdo relacionado
- sys.messages
- Severidades de erro do Mecanismo de Banco de Dados
- TENTAR... 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)