select distinct * into temptable from tablename
gotruncate table tablename
goinsert tablename
select * from temptable
godrop table temptable
go

解决方案 »

  1.   

    这个truncate命令是什么意思?不了解
    除了这种方法以外还有什么解决办法?因为库里的数据较多,用临时表有点慢
    谢谢!
      

  2.   

    而且第一句出错了,另外我用的数据库是oracle8
      

  3.   

    truncate语句是DDL语言(和create,drop,alter是同一类的)
    这条语句在效果上等同于delete from yourTable
    但是delete语句是写日志的,而truncate语句不写日志,因此要快得多。
      

  4.   

    Oracle:create table newTable as 
    select distinct * from tablename;
    /
    truncate table tablename;
    /
    insert into tablename
    select * from newTable;
    /
    drop table newTable;
    /