存储过程入参为数组如何分离并循环?
如题   :例如   入参为   aaa   varchar(500)   
 值为“1,2,3,4,5”   
 如何在存储过程中分离这个数组,类似Split   的功能 
 并循环插入数据库
------解决方案--------------------declare @aaa varchar(500)   
 set @aaa= '1,2,3,4,5 '     
 create table #( 
 a int 
 )     
 declare @sql varchar(8000) 
 set @sql= 'insert # select  ' +replace(@aaa, ', ', ' union all select  ')   
 exec(@sql)   
 select * from #   
 drop table #   
 --结果 
 a            
 -----------  
 1 
 2 
 3 
 4 
 5   
 (所影响的行数为 5 行)   
------解决方案----------------------用个函数来实现   
 --创建分解函数 
 create function uf_split 
 ( 
 @str varchar(8000)	--要分拆的字符串 
 ,@spli varchar(10)	--字符串分隔符 
 ) 
 returns @retab table(id int identity(1,1),istr varchar(8000)) 
 as 
 begin 
 	declare @i     int 
 	declare @splen int 
 	select @splen=len(@spli),@i=charindex(@spli,@str) 
 	while @i >  0 
 	begin 
 		insert into @retab  
 		values(left(@str,@i-1)) 
 		select @str=substring(@str,@i+@splen,8000) 
 		select @i=charindex(@spli,@str) 
 	end 
 	if @str <>  ' ' insert into @retab values(@str) 
 	return 
 end 
 go 
 --创建存储过程 
 create proc up_insertdata( 
 	@str1 varchar(500), 
 	@str2 varchar(500)) 
 as 
 insert into 表(字段1,字段2) 
 select a.istr,b.istr  
 from uf_split(@str1, ', ') a 
 left join (select * from uf_split(@str2, ', ')) b on a.id=b.id 
 go 
 --调用 
 exec up_insertdata  '1,2,3,4,5 ', 'A,B,C,D,E '