SQL中的存储过程与子字符串一起使用

时间:2013-04-03 10:12:49

标签: sql

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

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 插入表格...

如何修改?

2 个答案:

答案 0 :(得分: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表格并将datetypeint更改为varchar

答案 1 :(得分:0)

您需要删除转换为int:

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

如果也使用int。

,您可能还需要修改目标列上的类型