Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
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
Importante
Los argumentos para los procedimientos almacenados extendidos deben especificarse en el orden específico, tal como se describe en la sección sintaxis de . Si los parámetros se escriben fuera de orden, se produce un mensaje de error.
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, WARNINGo 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 base de datos o pertenencia al master.
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;
EXECUTE xp_logevent 60000,
@@MESSAGE, informational;