首页新闻找找看学习计划

请教SQL 存储过程批量添加数据的问题

0
[已解决问题] 解决于 2015-05-15 16:29

一个批量发送站内信的功能,为了提高性能,减少数据库往返,在程序先拼接好所有的参数,其他参数都是一样的,唯一的区别在收件人ID不同,我是用字符串的形式,用逗号隔开,例如 ids="1,10,20" 表示给ID分别为1 10 20的用户发送信息,那么在存储过程接受到这个参数后(nvarchar),如何将它分离出来并循环插入呢?谢谢

ludi的主页 ludi | 初学一级 | 园豆:16
提问于:2015-05-13 11:04
< >
分享
最佳答案
0

给你个例子

declare @s varchar(100),@sql varchar(1000)
set @s='1,2,3,4,5,6,7,8,9,10'
set @sql='select col='''+ replace(@s,',',''' union all select ''')+''''
PRINT @sql
exec (@sql)

奖励园豆:5
茂茂 | 老鸟四级 |园豆:2860 | 2015-05-13 11:13

得到集合后怎么用while调用?

ludi | 园豆:16 (初学一级) | 2015-05-13 11:41

@ludi: 集合不就是一张表吗?sql查询表不用我多说吧

茂茂 | 园豆:2860 (老鸟四级) | 2015-05-13 11:52
其他回答(2)
0

题主是在问存储过程,然后不知道有个东西叫CURSOR吧。你搜索CURSOR就知道怎么循环了。

爱编程的大叔 | 园豆:30471 (高人七级) | 2015-05-13 12:16
0

是的,用游标可以搞定

+小马哥++ | 园豆:906 (小虾三级) | 2015-05-14 08:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册