Share via


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.

Icono de vínculo a temas 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

PRINT (Transact-SQL)

RAISERROR (Transact-SQL)

Procedimientos almacenados del sistema (Transact-SQL)

Procedimientos almacenados extendidos generales (Transact-SQL)