无法再次将从varbinary中提取的int转换为varchar到int

问题描述 投票:-1回答:1

我正在将参数从存储过程传递到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)
sql-server tsql
1个回答
2
投票
CONVERT(varchar(8), CONTEXT_INFO())返回值50000,其余字符填充为char(0)。在转换为int之前,应尝试用''替换char(0)

select cast (REPLACE(@ParamPassedWhenSP_Called, CHAR(0), '') as int)

© www.soinside.com 2019 - 2024. All rights reserved.