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
Analytics Platform System (PDW)
Ponto de extremidade de análise de SQL no Microsoft Fabric
Depósito no Microsoft Fabric
Banco de dados SQL no Microsoft Fabric
Essa função retorna o texto da mensagem do erro que fez com que o bloco CATCH de um constructo TRY…CATCH fosse executado.
Convenções de sintaxe de Transact-SQL
Sintaxe
ERROR_MESSAGE ( )
Tipos de retorno
nvarchar(4000)
Valor Retornado
Quando chamado em um bloco CATCH, ERROR_MESSAGE retorna o texto completo da mensagem do erro que fez com que o bloco CATCH fosse executado. O texto inclui os valores fornecidos para qualquer parâmetro substituível, assim como comprimentos, nomes de objeto ou horas.
ERROR_MESSAGE retorna NULL quando chamado fora do escopo de um bloco CATCH.
Comentários
ERROR_MESSAGE dá suporte a chamadas em qualquer lugar dentro do escopo de um bloco CATCH.
ERROR_MESSAGE retorna uma mensagem de erro relevante, 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.
Em blocos CATCH aninhados, ERROR_MESSAGE retorna a mensagem de erro específica 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_MESSAGE retorna a mensagem do erro que invocou o bloco CATCH interno. Se ERROR_MESSAGE é executado no bloco CATCH externo, ele retorna a mensagem do erro que invocou esse bloco CATCH externo.
Exemplos
a. Usando ERROR_MESSAGE em um bloco CATCH
Este exemplo a seguir mostra uma instrução SELECT que gera um erro de divisão por zero. O bloco CATCH retorna a mensagem de erro.
BEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1/0;
END TRY
BEGIN CATCH
SELECT ERROR_MESSAGE() AS ErrorMessage;
END CATCH;
GO
Veja a seguir o conjunto de resultados.
-----------
(0 row(s) affected)
ErrorMessage
----------------------------------
Divide by zero error encountered.
(1 row(s) affected)
B. Usando ERROR_MESSAGE 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. Juntamente com a mensagem de erro, o bloco CATCH retorna informações sobre esse 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)
Confira também
sys.messages (Transact-SQL)
TENTAR... CATCH (Transact-SQL)
ERROR_LINE (Transact-SQL)
ERROR_MESSAGE (Transact-SQL)
ERROR_PROCEDURE (Transact-SQL)
SEVERIDADE_DO_ERRO (Transact-SQL)
ERROR_STATE (Transact-SQL)
RAISERROR (Transact-SQL)
@@ERROR (Transact-SQL)
Referência de erros e eventos (Mecanismo de Banco de Dados)