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