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

解决方案 »

  1.   

    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
      

  2.   


    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)