首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2012-03-13 
有没有办法把一张表里的数据分成几段存到几张不同的新表中?我有一张表名为extenddata,有四千条数据,我想分

有没有办法把一张表里的数据分成几段存到几张不同的新表中?
我有一张表名为   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遞增的。
然後逐次分段查詢插入新的表中去

热点排行