首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

存储过程中的参数循环解决方法

2012-02-28 
存储过程中的参数循环存户过程中有一个参数,在程序中传值的时候传的是多个值,根据该参数值得个数执行存储

存储过程中的参数循环
存户过程中有一个参数,在程序中传值的时候传的是多个值,根据该参数值得个数执行存储过程。
存储过程中有5条sql语句,该参数个数为一个时。5条语句执行医遍,参数个数为多个时,sql语句中的2条根据参数的个数执行。
怎么在存储过程中对该参数进行循环?

我试过在程序进行循环赋值行不通,所以考虑在存储过程中循环该参数。

请高手指点

[解决办法]
把数组组成一个字符串输入就行.

例子:
create procedure #IntListToTable
@cslist varchar(8000),
@tablename Sysname
AS
Begin
Declare @spot smallint, @str varchar(8000), @sql varchar(8000)
while @cslist < > ' '
Begin
Set @spot = charindex( ', ', @cslist)
if @spot > 0
Begin
Set @str = cast(left(@cslist, @spot-1) as int)
set @cslist = right(@cslist, len(@cslist)-@spot)
end
else
Begin
Set @str = cast(@cslist as int)
Set @cslist = ' '
End
Set @sql = 'Insert Into ' + @tablename + ' Values( '+convert(varchar(100),@str)+ ') '
exec(@sql)
end
end

create table #vals (id INT)

exec #IntListToTable '30000,50000,8000,2000,3000 ', '#vals '

select id from #vals

结果:

30000
50000
8000
2000
3000

热点排行