SQL Server数组参数的执行与问题


  本文标签:SQL Server数组参数

  以下的文章主要描述的是SQL Server数组参数,以及对其实际操作的过程时碰到的相关问题的具体描述,在实际操作中我曾遇到过这样的一个问题,需要在库里处理N条数据,不想在程序里循环造成多次访问数据库  。

  

  而SQL Sever又不支持SQL Server数组参数,尝试了两种方法,在此做笔记如下(省略了单条数据的处理,用#temp是为了显示结果)

  

  1.利用replace create table #temp

  

  1. (   
  2. ss varchar(200) not null   
  3. )   
  4. declare @str varchar(200)   
  5. declare @result varchar(1000)   
  6. set @str=aaa,bb,c,d,e,ffffff   
  7. set @result = insert into #temp(ss) select +replace(@str,,,union select)+   
  8. exec(@result)   
  9. select * from #temp  

  

  2.利用charindex和substring

  

  

  1. create table #temp   
  2. (   
  3. ss varchar(200) not null   
  4. )   
  5. declare @str varchar(200)   
  6. declare @curr int   
  7. declare @prev int   
  8. set @str=aaa,bb,c,d,e,ffffff   
  9. set @curr=1   
  10. set @prev=1   
  11. while @prev < len(@str)   
  12. begin   
  13. set @curr=charindex(,,@str,@prev)   
  14. if @curr>@prev   
  15. insert #temp select substring(@str,@prev,@curr-@prev)   
  16. else   
  17. begin   
  18. insert #temp select substring(@str,@prev,len(@str)-@prev+1)   
  19. break   
  20. end   
  21. set @prev=@curr+1   
  22. end   
  23. select * from #temp  

  

  以上的相关内容就是对SQL Server数组参数的介绍,望你能有所收获  。