FORMATMESSAGE (Transact-SQL)

Constrói uma mensagem a partir de uma mensagem existente em sys.messages. A funcionalidade de FORMATMESSAGE se assemelha à da instrução RAISERROR. Entretanto, RAISERROR imprime a mensagem imediatamente, enquanto FORMATMESSAGE retorna a mensagem formatada para processamento posterior.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

FORMATMESSAGE ( msg_number , [ param_value [ ,...n ] ] )

Argumentos

  • msg_number
    É o ID da mensagem armazenada em sys.messages. Se msg_number for <= 13000 ou se a mensagem não existir em sys.messages, será retornado NULL.

  • param_value
    É um valor de parâmetro para uso na mensagem. Pode ser mais de um valor de parâmetro. Os valores devem ser especificados na ordem em que as variáveis de espaço reservado aparecem na mensagem. O número máximo de valores é 20.

Tipos de retorno

nvarchar

Comentários

Da mesma forma que a instrução RAISERROR, FORMATMESSAGE edita a mensagem substituindo os valores de parâmetros fornecidos nas variáveis de espaço reservado da mensagem. Para obter mais informações sobre os espaços reservados permitidos em mensagens de erro e o processo de edição, consulte RAISERROR (Transact-SQL).

ObservaçãoObservação

FORMATMESSAGE funciona somente com mensagens criadas com o uso de sp_addmessage.

FORMATMESSAGE pesquisa a mensagem no idioma atual do usuário. Se não houver nenhuma versão localizada da mensagem, a versão em inglês dos EUA será usada.

Para mensagens localizadas, os valores de parâmetros fornecidos devem corresponder aos espaços reservados de parâmetros na versão em inglês dos EUA. Isto é, o parâmetro 1 na versão localizada deve corresponder ao parâmetro 1 na versão em inglês dos EUA, o parâmetro 2 deve corresponder ao parâmetro 2 e assim por diante.

Exemplos

Este exemplo usa uma mensagem hipotética 50001 armazenada em sys.messages como "O número de linhas em %s é %1d." FORMATMESSAGE substitui os valores Table1 e 5 para os espaços reservados de parâmetros. A cadeia de caracteres resultante, "O número de linhas em Table1 é 5", é armazenado na variável local @var1.

DECLARE @var1 VARCHAR(100)
SELECT @var1 = FORMATMESSAGE(50001, 'Table1', 5)