xp_logevent (Transact-SQL)
Se aplica a: SQL Server
Registra un mensaje definido por el usuario en el archivo de registro de SQL Server y en el registro de eventos de Windows. xp_logevent
se puede usar para enviar una alerta sin enviar un mensaje al cliente.
Convenciones de sintaxis de Transact-SQL
Sintaxis
xp_logevent { error_number , 'message' } [ , 'severity' ]
Argumentos
error_number
Número de error definido por el usuario mayor que 50000
. El valor máximo es 2147483647
(2^31 - 1).
'message'
Cadena de caracteres con un máximo de 2048 caracteres.
'gravedad'
Una de las tres cadenas de caracteres: INFORMATIONAL
, WARNING
o ERROR
. la gravedad es opcional, con un valor predeterminado de INFORMATIONAL
.
Valores de código de retorno
0
(correcto) o 1
(erróneo).
Conjunto de resultados
xp_logevent
devuelve el siguiente mensaje de error para el ejemplo de código incluido:
The command(s) completed successfully.
Comentarios
Al enviar mensajes desde procedimientos de Transact-SQL, desencadenadores, lotes, etc., use la RAISERROR
instrucción en lugar de xp_logevent
. xp_logevent
no llama a un controlador de mensajes de un cliente ni establece @@ERROR
. Para escribir mensajes en el registro de eventos de Windows y en el archivo de registro de errores de SQL Server dentro de una instancia de SQL Server, ejecute la RAISERROR
instrucción .
Permisos
Requiere la pertenencia a la db_owner rol fijo de base de datos en la master
base de datos o pertenencia al rol fijo de servidor sysadmin.
Ejemplos
En el siguiente ejemplo se registra el mensaje (con las variables pasadas al mensaje) en el Visor de eventos de 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;