日期:2014-05-18  浏览次数:20574 次

有没有办法把一张表里的数据分成几段存到几张不同的新表中?
我有一张表名为   extenddata,有四千条数据,我想分成四十段,每一百条存到一张新表, 名为extenddata01  
有这样的处理办法吗?


或者
update   Extenddata   set   oldscode=dbo.f_str(Scode)     where   .....

where条件里有没有分段的方法?


------解决方案--------------------
declare @i int,@max int,@tablename varchar(2)

select ID=identity(int,1,1),* into #temp from Extenddata
order by ???--需要排序就写,不需要就不写
set @max=@@rowcount
set @i=0
while @i <@max
begin
set @tablename=@i/100+1
set @tablename=replicate( '0 ',2-len(@tablename))+@tablename
exec ( 'select top 100 字段列表 into Extenddata '+@tablename+ ' from #temp where ID> '+@i+ ' order by ID ')
set @i=@i+100
end

------解决方案--------------------
select *,identity(int,1,1) as aa into #aa from extenddata
declare @i int
set @i=1
declare @sql nvarchar(4000)
while @i*40 <(select max(aa) from #aa)
begin
set @sql= 'select * into extenddata '+right( '00 '+Convert(nvarchar,@i),2) + 'from #aa where aa < '+Convert(nvarchar(10),@i*40)
exec (@sql)
set @i=@i+1
end
------解决方案--------------------
給這個表再加一個字段,數據為從1遞增的。
然後逐次分段查詢插入新的表中去