在SQLserver中将一个表中的数据分别查入到多个表中
 数据库中有表(anst)部分字段如下,要求把“For_item”字段中的数据分别导出为不同的EXCEL表中。如“缭ET”到一个   
 表中,“2829”到另一个表,“00005”到一个表,表中有40万数据,大概有5000个分类,也就是说要导出到5000个EXCEL表   
 中,请教各位大哥? 
 表中部分字段: 
 类别		For_item	BY_ITEM 
 注塑色粉	                           缭ET	 
 注塑色粉	                           缭ET	 
 注塑色粉	                           缭ET	 
 注塑色粉	                           缭ET	 
 车缝唛头纸	2829		2829-83 
 车缝唛头纸	2829		2829-83 
 裁片件		00000	 
 裁片件		00000	 
 裁片件		00000	 
 裁片件		00005	 
 裁片件		00005	 
 裁片件		00005	 
 裁片件		00005	 
 说明书		00001	 
 说明书		00001	     
 我的做法如下: 
 select   distinct   For_item   into   testa   from   anst   order   by   For_item   
 declare   @i   int       
 declare   @item   nvarchar(255) 
 set   @i=1    
 set   @item= 'item1 ' 
 while   @i <4192 
 begin 
 	 'select   *   into '+@item+    'from   anst   where   For_item   in   (select   For_item   from   testa   where   id=@i) ' 
 	set   @i=@i+1 
 	set   @item= 'item '+   @i 
 end   
 但是数据库始终提示 
 Msg   102,   Level   15,   State   1,   Line   7 
  'select   *   into '   附近有语法错误。 
 Msg   102,   Level   15,   State   1,   Line   10 
  'end '   附近有语法错误。
------解决方案--------------------select distinct For_item into testa from anst order by For_item   
 declare @i int 
 declare @item nvarchar(255) 
 set @i=1 
 --set @item= 'item1 ' 
 while @i <4192 
 begin 
 exec ( 'select * into item '+@i+ ' from anst where For_item in (select For_item from testa where id= '+@i+ ') ') 
 set @i=@i+1 
 --set @item= 'item '+ @i 
 end 
------解决方案--------------------select distinct For_item into testa from anst order by For_item   
 declare @i int  
 declare @item nvarchar(255),@Var nvarchar(1000) 
 set @i=1  
 set @item= 'item1 ' 
 while @i <4192 
 begin 
 set @Var= 'select * into  '+@item+  ' from anst where For_item in (select For_item from testa where id= '+ltrim(@i)+ ') ' 
 exec(@Var) 
 set @i=@i+1 
 set @item= 'item '+ ltrim(@i) 
 end