SQL中拼接字符串为什么要转换为数值
我在使用储存过程来插入记录,并产生相应的编号,可是在实行存储过程中出错
Declare @mcode varchar(20),@id intSELECT @id = SCOPE_IDENTITY();set @mcode = '4406'+ convert(char(3),right(convert(char(5),@TypeID+10000),3))+ [color=#FF0000]convert(char(7),right((convert(char(9),@id+100000000)),7))[/color]UPDATE [MonitorInfo]SET [MonitorCode] = ''WHERE [MonitorID] = @id
convert(char(7),right((convert(char(9),@id+100000000)),7))--你这里传入的@id=44060000000026了
[解决办法]
--你把那段代码这么写试试set @mcode = '4406'+ right(ltrim(@TypeID+10000),3)+right(ltrim(@id+100000000),7)
[解决办法]
这个是动态SQL的基本语法 都需要转换成VARCHAR型的才可以执行
如果是INT 会报错