1亿条数据中保留5条删除其他的有什么快点的方法吗?一个面世题,我他妈的被鄙视了。用delete not in 不行...等高手解答。

解决方案 »

  1.   

    1、先把其中5条查询出来插入到一个表中2、再将这个1亿条数据的表drop table 3、将哪个5条的数据表的名字更改为以前的表
      

  2.   

    set rowcount 99999995delete from Tableset rowcount 0
      

  3.   

    晕...用DELETE 在MSSQL估计不太可能能删完吧。
      

  4.   

    select 5条数据 into #临时表 from 1亿条数据的牛X表truncate table 1亿条数据的牛X表
    --让它牛X,不到10毫秒干掉它。insert 1亿条数据的牛X表 select * from #临时表drop table #临时表
      

  5.   

    delete from not in 这种删除方式会死人的;^_^
      

  6.   

    可以使用如下的语句:
    delete from Table where Column not in (select column from Table where Condition )
    先找出其中的五条记录,然后使用Delete命令删去五条之外的记录。
      

  7.   

    trancate  再逐条 insert
      

  8.   

    1、 select * into #test from table_Pqs where ...(5条记录)
    2、 truncate table table_Pqs
    3、 Insert Into table_Pqs select * from #test
    4、 Drop table #test
      

  9.   

    1、 select * into #test from table_Pqs where ...(5条记录)
    2、 truncate table table_Pqs
    3、 Insert Into table_Pqs select * from #test
    4、 Drop table #test
    同意这个观点,使用truncate,如果用delete的话,一个是慢,还有一个好像他会写入日志,
    然后让数据库日志文件增大。
    反正用delete是不好的。
      

  10.   

    select 5条数据 into #t from 1亿条数据的表truncate table 1亿条数据的表insert 1亿条数据的表 
    select * from #tdrop table #t
      

  11.   

    select 5条数据 into #临时表 from 1亿条数据的牛X表truncate table 1亿条数据的牛X表
    --让它牛X,不到10毫秒干掉它。insert 1亿条数据的牛X表 select * from #临时表drop table #临时表顶这个
      

  12.   

    路过,学习!
    支持【mig1975】的方案(当然其他很多人也是这个方案),干掉牛X表!偶也,偶也,偶也!
      

  13.   

    Limpire(昨夜小楼) ( ) 信誉:100  2007-9-20 1:04:25  得分: 0  
     
     
       
    select 5条数据 into #临时表 from 1亿条数据的牛X表truncate table 1亿条数据的牛X表
    --让它牛X,不到10毫秒干掉它。insert 1亿条数据的牛X表 select * from #临时表drop table #临时表
    -------------------------
    支持~
      

  14.   

    TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。 DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。如果要删除表定义及其数据,请使用 DROP TABLE 语句。对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。 TRUNCATE TABLE 不能用于参与了索引视图的表。
      

  15.   

    select 5条数据 into #临时表 from 1亿条数据的牛X表truncate table 1亿条数据的牛X表
    --让它牛X,不到10毫秒干掉它。insert 1亿条数据的牛X表 select * from #临时表drop table #临时表
      

  16.   

    truncate
    KK: []
    DJ: []
    vt.
    1. 切去(树木等)的头端,把...截短
    2. 缩短(文章等)
    3. 【晶】(截去棱角)使成平面
    a.
    1. 截头的,去尾的,截短的
    2. 缩短了的,被删节的
    3. 【晶】截面的
      

  17.   

    Limpire(昨夜小楼) 
    方法不错,跟我想的一样,呵呵
      

  18.   

    Limpire(昨夜小楼) 
    方法不错,跟我想的一样
      

  19.   

    太有才了!!
    牛X表!!!up小问题:找出那5条记录会花费多长时间啊?????
      

  20.   

    对于这个问题,直接 select top 5 考官能奈你何
      

  21.   

    select top 5 * into #爽b表 from 牛X表
    drop 牛X表
    select top 5 * into 牛X表 from #爽b表
    drop #爽b表
      

  22.   

    呵呵,我想到的也是用truncate,因为我平时就是这么用的,不想让log越来越大
      

  23.   

    select 5条数据 into #临时表 from 1亿条数据的牛X表truncate table 1亿条数据的牛X表
    --让它牛X,不到10毫秒干掉它。insert 1亿条数据的牛X表 select * from #临时表drop table #临时表
    继续顶