一个数据库中一张有32万条数据的表ENPS10200201,现在建立一张新的结构完全和它一样的表ENPS102002012然后把ENPS10200201中的150000条数据迁移到ENPS10200202中,然后再删除ENPS10200201中已经迁移的150000条数据,用 
use   nstl   
Select   *   INTO   ENPS10200202  from   ENPS10200201     where   id   in(select     top   150000   id   from     ENPS10200201) use   nstl   
delete   ENPS10200201   where   id   in(select     top   201400   id   from     ENPS10200201) 
这样可以吗 
还有什么更好办法,请教

解决方案 »

  1.   

    use       nstl       
    Select       *       INTO       ENPS10200202     from    (select           top       150000       id       from           ENPS10200201)   ause       nstl       
    delete       ENPS10200201
    from  ENPS10200201 a
    where   exists(select   1 from ENPS10200201 where a.id = id)  
      

  2.   

    use nstl
    select top 150000 * into ENPS10200202 from ENPS10200201
    use nstl 
    delete ENPS10200201 where id in(select  top 15000 id from  ENPS10200201)
    这样做可行吗效率如何
      

  3.   

    -- top       201400  这里的数据不一至,ID为唯一值时可以这样用