xp_logevent (Transact-SQL)
Registra un mensaje definido por el usuario en el archivo de registro de SQL Server y en el Visor de eventos de Windows. xp_logevent se puede utilizar 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
Es un número de error definido por el usuario mayor que 50.000. El valor máximo es 2147483647 (2^31 - 1).' message '
Es una cadena con un máximo de 2048 caracteres.' severity '
Es una de las tres cadenas de caracteres: INFORMATIONAL, WARNING, o ERROR. severity es opcional, con un valor predeterminado INFORMATIONAL.
Valores de código de retorno
0 (correcto) o 1 (error)
Conjuntos de resultados
xp_logevent devuelve el siguiente mensaje de error para el ejemplo de código incluido:
The command(s) completed successfully.
Comentarios
Cuando se envían mensajes desde procedimientos, desencadenadores, procesos por lotes, etc. de Transact-SQL, utilice la instrucción RAISERROR 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 Visor de eventos de Windows y en el archivo del registro de errores de SQL Server dentro de una instancia de SQL Server, ejecute la instrucción RAISERROR.
Permisos
Hay que pertenecer al rol fijo de base de datos db_owner en la base de datos master, o 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)
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
Vea también
Referencia
Procedimientos almacenados del sistema (Transact-SQL)
Procedimientos almacenados extendidos generales (Transact-SQL)