使用sp_addmessage添加自定义消息将新的用户定义错误消息存储在SQLServerDatabaseEngine实例中。使用sp_addmessage存储的消息可以使用sys.messages目录视图进行查看。语法sp_addmessage[@msgnum=]msg_id,[@severity=]severity,[@msgtext=]'msg'[,[@lang=]'language'][,[@with_log=]'with_log'][,[@replace=]'replace']备注对于非英语版本的SQLServer,必须已经存在美国英语版本的消息,然后才能使用另一种语言添加消息。两种消息版本的严重性必须匹配。当本地化包含参数的消息时,使用与原始消息中的参数相应的参数。在每个参数后都插入感叹号(!)。原始消息本地化的消息'Originalmessageparam1:%s,param2:%d''Localizedmessageparam1:%1!,param2:%2!'由于语言语法不同,因此,本地化消息中的参数可能不会以原始消息中相同的顺序出现。参数[@msgnum=]msg_id消息的ID。msg_id的数据类型为int,默认值为NULL。用户定义错误消息的msg_id可以是50,001和2,147,483,647之间的整数。msg_id和language的组合必须是唯一的;如果特定语言的ID已经存在,则返回错误。[@severity=]severity错误的严重级别。severity的数据类型为smallint,默认值为NULL。有效级别从1到25。有关严重性的详细信息,请参阅数据库引擎错误严重性。[@msgtext=]'msg'错误消息的文本。msg的数据类型为nvarchar(255),默认值为NULL。[@lang=]'language'该消息的语言。language的数据类型为sysname,默认值为NULL。由于可以在同一个服务器上安装多种语言,因此,language指定编写每个消息时所用的语言。如果省略language,则会话语言为默认语言。[@with_log=]{'TRUE'|'FALSE']}是否在消息发生时将其写入Windows应用程序日志。@with_log的数据类型为varchar(5),默认值为FALSE。如果为TRUE,则错误始终写入Windows应用程序日志。如果为FALSE,则错误不会始终写入Windows应用程序日志,但仍然可以写入,具体取决于错误是如何引发的。只有sysadmin服务器角色的成员才能使用该选项。注意:如果消息写入了Windows应用程序日志,那么它也将被写入数据库引擎错误日志文件。[@replace=]'replace'如果指定为字符串replace,则会以新的消息正文和严重级别覆盖现有错误消息。@replace为varchar(7),默认值为NULL。如果msg_id已经存在,则必须指定该选项。如果替换了美国英语消息,则会以具有相同msg_id的所有其他语言替换所有消息的严重级别。返回代码值0(成功)或1(失败)结果集无权限要求具有sysa...