sp_altermessage (Transact-SQL)
适用范围:SQL Server
更改 SQL Server 实例中用户定义的或系统消息的状态数据库引擎。 可以使用目录视图查看 sys.messages
用户定义的消息。
语法
sp_altermessage
[ @message_id = ] message_id
, [ @parameter = ] N'parameter'
, [ @parameter_value = ] 'parameter_value'
[ ; ]
参数
[ @message_id = ] message_id
要更改 sys.messages
的消息的误差号。 @message_id为 int,无默认值。
[ @parameter = ] N'parameter'
与@parameter_value一起使用,指示消息要写入 Windows 应用程序日志。 @parameter为 sysname,无默认值。
@parameter 必须设置为 WITH_LOG
或 NULL
。 如果@parameter设置为WITH_LOG
或NULL
@parameter_value的值true
,则消息将写入 Windows 应用程序日志。 如果@parameter设置为WITH_LOG
或NULL
@parameter_value的值,false
则消息并不总是写入 Windows 应用程序日志,但可能会根据错误引发方式进行写入。
如果将消息写入 Windows 应用程序日志,则它还会写入数据库引擎错误日志文件。
如果 指定了@parameter , 还必须指定@parameter_value 。
[ @parameter_value = ] 'parameter_value'
与@parameter一起使用,指示错误将写入 Windows 应用程序日志。 @parameter_value为 varchar(5),没有默认值。
- 如果
true
始终将错误写入 Windows 应用程序日志。 - 如果
false
,错误并不总是写入 Windows 应用程序日志,但可能会写入,具体取决于错误是如何引发的。
如果 指定了@parameter_value , 还必须指定@parameter 。
返回代码值
0
(成功)或 1
(失败)。
结果集
无。
注解
使用WITH_LOG
选项的效果与RAISERROR WITH LOG
参数的效果sp_altermessage
类似,只是更改sp_altermessage
现有消息的日志记录行为。 如果消息已 WITH_LOG
更改,则无论用户如何调用错误,它始终会写入 Windows 应用程序日志。 即使 RAISERROR
未 WITH_LOG
执行该选项,也会将错误写入 Windows 应用程序日志。
可以使用 修改 sp_altermessage
系统消息。
权限
需要 serveradmin 固定服务器角色的成员身份。
示例
以下示例将现有消息 55001
写入 Windows 应用程序日志。
EXEC sp_altermessage 55001, 'WITH_LOG', 'true';
GO