Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a: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.
Transact-SQL convenções de sintaxe
Sintaxe
xp_logevent { error_number , 'message' } [ , 'severity' ]
Argumentos
Importante
Os argumentos para procedimentos armazenados estendidos devem ser inseridos na ordem específica, conforme descrito na seção de sintaxe. Se os parâmetros forem inseridos fora de ordem, ocorrerá uma mensagem de erro.
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.
de gravidade é opcional, com um padrão de INFORMATIONAL.
Valores de código de retorno
0 (sucesso) ou 1 (fracasso).
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
Quando você envia mensagens de Transact-SQL procedimentos, gatilhos, lotes e assim por diante, use a instrução RAISERROR em vez de xp_logevent.
xp_logevent não chama um manipulador de mensagens de um cliente nem 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 instrução RAISERROR.
Permissões
Requer associação à função de banco de dados fixa db_owner no banco de dados master ou associação à função de servidor sysadmin fixa.
Exemplos
O exemplo a seguir registra a mensagem, com variáveis passadas para a mensagem no 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;
EXECUTE xp_logevent 60000,
@@MESSAGE, informational;