Partilhar via


xp_logevent (Transact-SQL)

Aplica-se: SQL Server

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

Convenções de sintaxe de Transact-SQL

Sintaxe

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

Argumentos

error_number

Um número de erro definido pelo usuário maior que 50000. O valor máximo é 2147483647 (2^31 - 1).

'mensagem'

Uma cadeia de caracteres com um máximo de 2048 caracteres.

'Gravidade'

Uma das três cadeias de caracteres: INFORMATIONAL, WARNINGou ERROR. severity é opcional, com um padrão de INFORMATIONAL.

Valores do código de retorno

0 (sucesso) ou 1 (falha).

Conjunto 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

Ao enviar mensagens de procedimentos Transact-SQL, gatilhos, lotes e assim por diante, use a RAISERROR instrução em vez de xp_logevent. xp_logevent não chama um manipulador de mensagens de um cliente ou define @@ERROR. Para gravar mensagens no log de eventos do Windows e no arquivo de log de erros do SQL Server em uma instância do SQL Server, execute a RAISERROR instrução.

Permissões

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

Exemplos

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

DECLARE @@TABNAME VARCHAR(30),
    @@USERNAME VARCHAR(30),
    @@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;