sql server 存储过程 数据不能完整插入
要求用户输入两段用分号分隔的字符串,如'01;02;03'和'aa;bb;cc';传到存储过程中,存储过程将01和aa存到student表的xh和xm字段,02和bb,03和cc;但是存储过程的语句肯定有问题,就是不能存入,望解:
create Proc insert_Data
@str_xh varchar(100),
@str_xm varchar(500)
as
while(charindex(';',@str_xh)<>0 and charindex(';',@str_xm)<>0)
begin
declare @xh_id varchar(10),
@xm_id varchar(50);
set @xh_id=substring(@str_xh,1,charindex(';',@str_xh)-1);
set @xm_id=substring(@str_xm,1,charindex(';',@str_xm)-1);
insert into student values(@xh_id,@xm_id) ;
--截取剩余的字符串重新赋给@xh_id
set @str_xh=stuff(@str_xh,1,charindex(';',@xh_id),'');
set @str_xm=stuff(@str_xm,1,charindex(';',@xm_id),'')
end
--字符串中没有';'了,则最后一个id直接为最后一个字符
insert into student values(@xh_id,@xm_id)
go
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我觉得你这样定义参数,处理比较复杂,如果两个参数对应的值是一一对应,可以合并为一个参数
你可以采取xml格式的参数,如:
下面的@xml就是你的参数,在处理时可以直接按表处理
code name
01 aa
02 bb
03 cc