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

关于一个insert数据库的sql,该如何处理

2012-03-03 
关于一个insert数据库的sql我现在有个数组A{1,2,3,4,5,6,7,8}现要求把这个数组里的每一个数据作为一条记

关于一个insert数据库的sql
我现在有个数组A={1,2,3,4,5,6,7,8}
现要求把这个数组里的每一个数据作为一条记录一次性全部添加到表T里;
请问有没什么比较好的方法,谢谢;

对了,A里的数据是可变的,可能会比较大


[解决办法]
declare @AllChar varchar(50)
declare @FirstChar varchar(50)
declare @FirstPoint int
declare @lenth int

set @AllChar= '1,2,3,4,5,6,7,8 ' ----可以传入一个字符串
set @lenth=len(@AllChar)
create table #Temp_String(FID int identity,Content varchar(50))
set @FirstPoint=charindex( ', ',@AllChar)

while( @FirstPoint> 0)
begin
set @FirstChar=substring(@AllChar,0,@FirstPoint)
--select @FirstChar
insert into #Temp_String(Content) values (@FirstChar)
set @AllChar=substring(@AllChar,@FirstPoint+1,@lenth)
set @FirstPoint=charindex( ', ',@AllChar)
end

insert into #Temp_String(Content) values (@AllChar)
select * from #Temp_String
[解决办法]

create table T(col int)

declare @str varchar(20)
set @str= '1,2,3,4,5,6,7,8 '
declare @sql varchar(8000)
set @sql= 'insert T select col= ' ' '
select @sql=@sql+replace(@str, ', ', ' ' ' union all select ' ' ')+ ' ' ' '
exec(@sql)

select * from T

--result
col
-----------
1
2
3
4
5
6
7
8

(8 row(s) affected)

热点排行