一个批量发送站内信的功能,为了提高性能,减少数据库往返,在程序先拼接好所有的参数,其他参数都是一样的,唯一的区别在收件人ID不同,我是用字符串的形式,用逗号隔开,例如 ids="1,10,20" 表示给ID分别为1 10 20的用户发送信息,那么在存储过程接受到这个参数后(nvarchar),如何将它分离出来并循环插入呢?谢谢
给你个例子
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)
得到集合后怎么用while调用?
@ludi: 集合不就是一张表吗?sql查询表不用我多说吧
题主是在问存储过程,然后不知道有个东西叫CURSOR吧。你搜索CURSOR就知道怎么循环了。
是的,用游标可以搞定