Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

xp_logevent (Transact-SQL)

Logs a user-defined message in the SQL Server log file and in the Windows Event Viewer. xp_logevent can be used to send an alert without sending a message to the client.

Topic link iconTransact-SQL Syntax Conventions

xp_logevent { error_number ,'message' } [ ,'severity' ]
error_number

Is a user-defined error number larger than 50,000. The maximum value is 2147483647 (2^31 - 1).

'message'

Is a character string with a maximum of 2048 characters.

'severity'

Is one of three character strings: INFORMATIONAL, WARNING, or ERROR. severity is optional, with a default of INFORMATIONAL.

0 (success) or 1 (failure)

xp_logevent returns the following error message for the included code example:

The command(s) completed successfully.

When you send messages from Transact-SQL procedures, triggers, batches, and so on, use the RAISERROR statement instead of xp_logevent. xp_logevent does not call a message handler of a client or set @@ERROR. To write messages to the Windows Event Viewer and to the SQL Server error log file within an instance of SQL Server, execute the RAISERROR statement.

Requires membership in the db_owner fixed database role in the master database, or membership in the sysadmin fixed server role.

The following example logs the message, with variables passed to the message in the Windows Event Viewer.

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
Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft. All rights reserved.