Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Base de Dados SQL do Azure
Instância Gerida do Azure SQL
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Ponto de Extremidade de Análise SQL no Microsoft Fabric
Armazém no Microsoft Fabric
Base de Dados SQL no Microsoft Fabric
Esta função retorna o texto da mensagem do erro que causou o bloco CATCH de um TRY... CATCH construir para executar.
Transact-SQL convenções de sintaxe
Sintaxe
ERROR_MESSAGE ( )
Tipos de devolução
Nvarchar(4000)
Valor de retorno
Quando chamado em um bloco CATCH, ERROR_MESSAGE retorna o texto completo da mensagem de erro que causou a execução do CATCH bloco. O texto inclui os valores fornecidos para quaisquer parâmetros substituíveis - por exemplo, comprimentos, nomes de objetos ou tempos.
ERROR_MESSAGE retorna NULL quando chamado fora do escopo de um bloco CATCH.
Observações
ERROR_MESSAGE suporta chamadas em qualquer lugar dentro do escopo de um bloco CATCH.
ERROR_MESSAGE Retorna uma mensagem de erro relevante, independentemente de quantas vezes ela é executada ou onde ela é executada dentro do escopo do CATCH bloco. Isso contrasta com uma função como @@ERROR, que só retorna um número de erro na instrução imediatamente após a que causa um erro.
Em blocos aninhados CATCH , ERROR_MESSAGE retorna a mensagem de erro específica para o escopo do bloco que fez referência a CATCH esse CATCH bloco. Por exemplo, o CATCH bloco de um TRY externo... A construção CATCH pode ter uma construção interna TRY...CATCH . Dentro desse bloco interno CATCH , ERROR_MESSAGE retorna a mensagem do erro que invocou o bloco interno CATCH . Se ERROR_MESSAGE for executado no bloco externo CATCH , ele retornará a mensagem do erro que invocou esse bloco externo CATCH .
Exemplos
Um. Usando ERROR_MESSAGE em um bloco CATCH
Este exemplo mostra uma SELECT instrução que gera um erro de divisão por zero. O CATCH bloco 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
Aqui está 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 mostra uma SELECT instrução que gera um erro de divisão por zero. Junto com a mensagem de erro, o CATCH bloco 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
Aqui está 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)
Ver também
sys.messages (Transact-SQL)
TENTE... CAPTURAR (Transact-SQL)
LINHA_ERRO (Transact-SQL)
MENSAGEM_DE_ERRO (Transact-SQL)
PROCEDIMENTO_ERRO (Transact-SQL)
ERROR_SEVERITY (Transact-SQL)
ERROR_STATE (Transact-SQL)
RAISERROR (Transact-SQL)
@@ERROR (Transact-SQL)
Referência de erros e eventos (Mecanismo de Banco de Dados)