xp_logevent (Transact-SQL)
将用户定义消息记入 SQL Server 日志文件和 Windows 事件查看器。可以使用 xp_logevent 发送警报,而不必给客户端发送消息。
语法
xp_logevent { error_number , 'message' } [ , 'severity' ]
参数
error_number
用户定义错误号,该值大于 50,000。最大值为 2147483647 (2^31 - 1)。'message'
最多 2048 个字符的字符串。'severity'
以下三个字符串之一:INFORMATIONAL、WARNING 或 ERROR。severity 是可选的,默认值为 INFORMATIONAL。
返回代码值
0(成功)或 1(失败)
结果集
对于所包含的代码示例,xp_logevent 返回下列错误消息:
The command(s) completed successfully.
注释
发送来自 Transact-SQL 过程、触发器、批处理等的消息时,请使用 RAISERROR 语句代替 xp_logevent。xp_logevent 不调用客户端的消息处理程序,也不设置 @@ERROR。若要将消息写入 Windows 事件查看器以及 SQL Server 实例的 SQL Server 错误日志文件,请执行 RAISERROR 语句。
权限
需要 master 数据库中的 db_owner 固定数据库角色的成员身份,或者 sysadmin 固定服务器角色的成员身份。
示例
以下示例将消息连同传递给消息的变量记入 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