当前位置: 代码迷 >> Sql Server >> 有没有办法把一张表里的数据分成几段存到几张不同的新表中?解决办法
  详细解决方案

有没有办法把一张表里的数据分成几段存到几张不同的新表中?解决办法

热度:101   发布时间:2016-04-27 17:25:40.0
有没有办法把一张表里的数据分成几段存到几张不同的新表中?
我有一张表名为   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 @[email protected]/100+1
set @tablename=replicate( '0 ',2-len(@tablename))[email protected]
exec ( 'select top 100 字段列表 into Extenddata '[email protected]+ ' from #temp where ID> '[email protected]+ ' order by ID ')
set @[email protected]+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 @[email protected]+1
end
------解决方案--------------------
給這個表再加一個字段,數據為從1遞增的。
然後逐次分段查詢插入新的表中去
  相关解决方案