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
, WARNING
ou 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;