以下的文章主要描述的是SQL Server数组参数,以及对其实际操作的过程时碰到的相关问题的具体描述,在实际操作中我曾遇到过这样的一个问题,需要在库里处理N条数据,不想在程序里循环造成多次访问数据库。
而SQL Sever又不支持SQL Server数组参数,尝试了两种方法,在此做笔记如下(省略了单条数据的处理,用#temp是为了显示结果)
1.利用replace create table #temp
- (
- ss varchar(200) not null
- )
- declare @str varchar(200)
- declare @result varchar(1000)
- set @str='aaa,bb,c,d,e,ffffff'
- set @result =' insert into #temp(ss) select '''+replace(@str,',','''union select''')+''''
- exec(@result)
- select * from #temp
2.利用charindex和substring
- create table #temp
- (
- ss varchar(200) not null
- )
- declare @str varchar(200)
- declare @curr int
- declare @prev int
- set @str='aaa,bb,c,d,e,ffffff'
- set @curr=1
- set @prev=1
- while @prev < len(@str)
- begin
- set @curr=charindex(',',@str,@prev)
- if @curr>@prev
- insert #temp select substring(@str,@prev,@curr-@prev)
- else
- begin
- insert #temp select substring(@str,@prev,len(@str)-@prev+1)
- break
- end
- set @prev=@curr+1
- end
- select * from #temp
以上的相关内容就是对SQL Server数组参数的介绍,望你能有所收获。
【编辑推荐】