0

我在这里有这个存储过程:

else if(substring(@SMS,1,1)='S')
begin
insert into WEB_POROSIA..SMS_SERVISI(IDTICKET, MBYLLUR) values(convert(int,substring(@SMS,2,len(@sms)-1)),1)
select @sms
end

它的作用是:我发送这样的短信:

S 23并在数据库中保存23值..

现在,它是这样工作的,但如果我之前添加一个字母,它就不会:即

S B21它应该将B21插入到表中......

如何修改它?

4

2 回答 2

2
values(convert(int,substring(@SMS,2,len(@sms)-1)),1)
               ^ Because you are converting it into int

如果你得到B ,你可以convert进入varchar

values(convert(varchar,substring(@SMS,2,len(@sms)-1)),1)

(假设您将alter表格并将datetypefrom更改intvarchar

于 2013-04-03T10:15:39.933 回答
0

您将需要删除到 int 的转换:

insert into WEB_POROSIA..SMS_SERVISI(IDTICKET, MBYLLUR) values(substring(@SMS,2,len(@sms)-1),1)

如果目标列也使用 int,您可能还需要修改目标列的类型。

于 2013-04-03T10:18:39.380 回答