Transact-SQL 参考

sp_altermessage

更改 sysmessages 错误的状态。

语法

sp_altermessage [ @message_id = ] message_number
    
, [ @parameter = ] 'write_to_log'

    ,
[ @parameter_value = ] 'value'

参数

[@message_id =] message_number

要更改的 sysmessages 错误或消息编号,message_number 的数据类型为 int,没有默认值。

[@parameter =] 'write_to_log'

表示将此消息写入 Microsoft® Windows NT® 的应用程序日志,write_to_log 的数据类型是 sysname,没有默认值。如果 write_to_log 的值为 WITH_LOG,则当消息出现时,将其写入 Microsoft Windows NT 日志。

说明  如果消息写入了 Windows NT 应用程序日志,它也将被写入 Microsoft SQL Server™ 错误日志文件。

[ @parameter_value =] 'value'

错误是否写入 Windows NT 应用程序日志。value 的数据类型为 varchar(5),没有默认值。如果为 true,则错误总是写入 Windows NT 应用程序日志。如果为 false,则错误并不是始终都写入应用程序日志,但可以写入应用程序日志,具体取决于错误是如何产生的。

返回代码值

0(成功)或 1(失败)

结果集

注释

带有 WITH_LOG 选项的 sp_altermessage 的作用和 RAISERROR WITH LOG 参数的作用相似,只是 sp_altermessage 更改现有消息的记录行为。如果消息已更改为 WITH_LOG,则它总是被写入 Windows NT 应用程序日志,而不管用户如何引起该错误。即使不带 WITH LOG 选项执行 RAISERROR,错误也会被写入 Windows NT 应用程序日志。

可以使用 sp_altermessage 修改由 sp_addmessage 添加的系统消息(例如 605)和用户消息。

权限

只有 sysadminserveradmin 固定服务器角色成员才能执行该存储过程。

示例

下面的示例导致现有消息 55001 被记录到 Windows NT 应用程序日志中。

sp_altermessage 55001, 'WITH_LOG', 'true'

请参见

sp_addmessage

sp_dropmessage

系统存储过程