create table #a (a char(1),b char(1),c char(1),d char(1),e 
char(1),f char(1))
go
declare @b varchar(100)
declare @sql nvarchar(500)
set @b='a,b,c,d,e,f'
set @sql='insert into #a values('''+replace(@b,',',''',''')+''')'
--print @sql
exec (@sql)
go
select * from #a

解决方案 »

  1.   

    create table #t (c1 char(1),c2 char(1),c3 char(1),c4 char(1),c5 char(1))
    declare @str varchar(30)
    set @str='a,b,c,d,e,f'set @str=replace(stuff(@str,4,2,''),',',''',''')
    exec('insert into #t values('''+@str+''')')
    select * from #t
      

  2.   

    如果a,b,c,d,e,f为不定长那怎么办
      

  3.   

    declare @n int,@i int
    declare @b varchar(100)
    declare @sql nvarchar(500)
    set @b='a,b,c,d,e,f'
    select @n=len(@b)-len(replace(@b,',',''))
    set @i=1
    set @sql='create table ##a ('
    while @i<=@n+1
    begin
    set @sql=@sql+'f'+cast(@i as varchar(3))+' varchar(20),'
    set @i=@i+1
    end
    set @sql=left(@sql,len(@sql)-1)+')'
    print @sql
    exec (@sql)
    set @sql='insert into ##a values('''+replace(@b,',',''',''')+''')'
    exec (@sql)
    select * from ##adrop table ##a
      

  4.   

    select Replace(Replace(FieldName,',','') ,'C',''),FieldName from MyTable
      

  5.   

    想了一个简单点的办法:
    declare @A varchar(100)
    declare @sql nvarchar(500)
    declare @i int
    set @a='a, b ,c ,d,e,f,g'
    set @a=''''+ replace(@a,',','''.''')+'''.'''
    set @i=1
    while charindex('.',@a)<>0
    begin
    set @a=stuff(@a,charindex('.',@a),1,' '+'F'+cast(@i as varchar(3))+',')
    set @i=@i+1
    end
    set @sql='select '+left(@a,len(@a)-2)+' into ##temp'
    exec(@sql)select * from ##temp
    drop table ##temp
    -------------------------------
    F1   F2   F3   F4   F5   F6   F7   
    ---- ---- ---- ---- ---- ---- ---- 
    a     b   c    d    e    f    g(所影响的行数为 1 行)
      

  6.   

    动态SQL!
    declare @s varchar(255)
    set @s='a,b,c,d,e,f'
    set @s= 'insert into Tablename values(''' + replace(@s,',',''',''') + ''')'
    execute (@s)
      

  7.   

    declare @s varchar(255)
    set @s='a,b,c,d,e,f'
    set @s= 'insert into Tablename (f1,f2,f3,f4,f5) values(''' + replace(@s,',',''',''') + ''')'
    print @s
    execute (@s)--QA 里执行上面 SQL 脚本