RAISERROR引发替换参数错误

Tom*_*ens 2 sql t-sql sql-server sql-server-2005

以下T-Sql代码:

DECLARE @usu VARCHAR(10);
SET @usu = 'TOM';
PRINT @usu;
RAISERROR ('Name of USU is %i ',14,2,@usu);
Run Code Online (Sandbox Code Playgroud)

返回以下错误:

消息2786,级别16,状态1,行4
替换参数1的数据类型与格式规范的预期类型不匹配.

有谁知道我怎么能摆脱这个错误?

Mik*_*oud 6

是的,将格式更改为Name of USU is %s,%i意味着值@usu是有符号整数.所有格式类型都在MSDN上清楚地记录.


gre*_*jer 5

尝试更改它:

RAISERROR ('Name of USU is %i ',14,2,@usu); 
Run Code Online (Sandbox Code Playgroud)

进入那个

RAISERROR ('Name of USU is %s ',14,2,@usu); 
Run Code Online (Sandbox Code Playgroud)

因为@usu是varchar(10),%i表示有符号整数