Compartilhar via


xp_logevent (Transact-SQL)

Registra uma mensagem definida pelo usuário no arquivo de log do SQL Server e em Visualizar Eventos do Windows. xp_logevent pode ser usado para enviar um alerta sem enviar uma mensagem ao cliente.

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

Sintaxe

xp_logevent { error_number , 'message' } [ , 'severity' ]

Argumentos

  • error_number
    É um número de erro definido pelo usuário maior que 50.000. O valor máximo é 2147483647 (2^31 - 1).

  • 'message'
    É uma cadeia de caracteres com no máximo 2048 caracteres.

  • 'severity'
    É uma destas três cadeias de caracteres: INFORMATIONAL, WARNING ou ERROR. severity é opcional, com um padrão INFORMATIONAL.

Valores do código de retorno

0 (êxito) ou 1 (falha)

Conjuntos de resultados

xp_logevent retorna a seguinte mensagem de erro para o exemplo de código incluído:

The command(s) completed successfully.

Comentários

Quando você envia mensagens a partir de procedimentos Transact-SQL, disparadores, lotes e assim por diante, use a instrução RAISERROR no lugar de xp_logevent. xp_logevent não chama um manipulador de mensagens de um cliente ou define @@ERROR. Para gravar mensagens em Visualizar Eventos do Windows e no log de erros do SQL Server em uma instância do SQL Server, execute a instrução RAISERROR.

Permissões

Requer associação na função de banco de dados fixa db_owner no banco de dados master ou associação na função de servidor fixa sysadmin.

Exemplos

O exemplo a seguir registra a mensagem, com variáveis passadas à mensagem em Visualizar Eventos do Windows.

DECLARE @@TABNAME varchar(30)
DECLARE @@USERNAME varchar(30)
DECLARE @@MESSAGE varchar(255)
SET @@TABNAME = 'customers'
SET @@USERNAME = USER_NAME()
SELECT @@MESSAGE = 'The table ' + @@TABNAME + ' is not owned by the user 
   ' + @@USERNAME + '.'

USE master
EXEC xp_logevent 60000, @@MESSAGE, informational