我正在将参数从存储过程传递到SQL服务器上的触发器
我在触发器上获得了真实的值,但无法转换回提取为varchar的int
我在下面遇到错误
Msg 245,第16级,状态1,第14行将varchar值'50000 ...'转换为数据类型int时转换失败。
declare @a varbinary(8);
select @a=CONVERT( varbinary(8),convert(varchar(8),50000))
SET CONTEXT_INFO @a;
declare @ParamPassedWhenSP_Called varchar(10);
select @ParamPassedWhenSP_Called=(SELECT CONVERT(varchar(8), CONTEXT_INFO()))
select cast (@ParamPassedWhenSP_Called as int)
CONVERT(varchar(8), CONTEXT_INFO())
返回值50000
,其余字符填充为char(0)
。在转换为int之前,应尝试用''
替换char(0)select cast (REPLACE(@ParamPassedWhenSP_Called, CHAR(0), '') as int)