declare @i int
declare @t int
declare @sql varchar(8000)
set @sql=''
set @t=1
select @i=max(len(str)) from bb
while(@t<=@i)
begin
set @sql=@sql+',substring(str,'+cast(@t as varchar)+',1) as no'+cast(@t as varchar)
set @t=@t+1
end
set @sql= 'select studentid,'+stuff(@sql,1,1,'')+' into aa from bb '
exec(@sql)

解决方案 »

  1.   

    create proc proc_createtablegselectsplit
    as 
     if   exists   (select   *   from   dbo.sysobjects   where   id   =   object_id(N'[dbo].[tablegselectsplit]')   and   OBJECTPROPERTY(id,   N'IsUserTable')   =   1)   
      drop   table   [dbo].[tablegselectsplit]
    declare @i int
    declare @t int
    declare @sql varchar(8000)
    set @sql=''
    set @t=1
    select @i=max(len(str)) from bb
    while(@t<=@i)
    begin
    set @sql=@sql+',substring(str,'+cast(@t as varchar)+',1) as no'+cast(@t as varchar)
    set @t=@t+1
    end
    set @sql= 'select studentid,'+stuff(@sql,1,1,'')+' into tablegselectsplit from bb '
    exec(@sql)这是我修改了后,能把表创建出来的结果,谢谢wangdehao(找找找(现在很幸福)) ,给分啦~~~~~~~~~~~~~~~~~~~~~~~~~