Transact-SQL 参考

FORMATMESSAGE

sysmessages 现有的消息构造消息。FORMATMESSAGE 与 RAISERROR 语句的功能相似;但 RAISERROR 立即输出消息而 FORMATMESSAGE 返回编辑后的信息供进一步处理。

语法

FORMATMESSAGE ( msg_number , param_value [ ,...n ] )

参数

msg_number

存储于 sysmessages 的消息的 ID。如果消息在 sysmessages 中不存在,则返回 NULL。

param_value

消息中使用的一个或多个参数值。值的顺序必须与占位符变量在消息中出现的次序相同。值的最大数目为 20。

返回类型

nvarchar

注释

与 RAISERROR 语句相像,FORMATMESSAGE 用所提供的参数值替换消息中的占位符变量来编辑消息。有关错误信息中允许使用的占位符和编辑进程的更多信息,请参见 RAISERROR

FORMATMESSAGE 查找用户当前语言的消息。如果消息没有本地化版本,则使用美国英语版本。

对于本地化的消息,所提供的参数值必须与美国英语版本中的参数占位符相对应。也就是说,本地化版本的参数 1 必须对应于美国英语版本的参数 1,参数 2 必须对应于参数 2,依此类推。

示例

此示例使用假定的存储于 sysmessages 中的 50001 号消息"The number of rows in %s is %1d."(%s 的行数为 %1d。)。FORMATMESSAGE 用值 Table1 和 5 替换参数占位符。结果字符串"The number of rows in Table1 is 5."存储于局部变量 @var1

DECLARE @var1 VARCHAR(100)
SELECT @var1 = FORMATMESSAGE(50001, 'Table1', 5)

请参见

sp_addmessage

系统函数