declare @row int
select @row=count(*) from ?1 where ?2
set rowcount @row-1
delete ?1 where ?2
以上?1表示表名称,?2表示选择这些重复记录的条件

解决方案 »

  1.   

    "set rowcount @row-1"
    这句好象有问题,我在SQL 6.5 中执行不成功!
      

  2.   

    select * into TempTable from TableName where 1=2
    insert into TempTable select distinct * from TableName
    truncate table TableName
    insert into TableName select * from TempTable
    drop table TempTable
    将TableName换为表名,就可以了
      

  3.   

    我有一个笨方法 tbla 有两个字段id(自动增加),name
    删除重复的为:
    delete a.* from tbla as a join tbla as b a.id>b.id and a.name=b.name或delete * from tbla where id in(select a.id from tbla as a join tbla as b on a.id>b.id and a.name=b.name)
      

  4.   

    不好意思,上面我有笔误我有一个笨方法 tbla 有两个字段id(自动增加),name
    删除重复的为:
    delete from tbla where id in (select a.id from tbla as a join tbla as b on a.id>b.id and a.name=b.name)
      

  5.   


    转述如下:
    用临时表
    select distinct * into #tmp from table1  where 条件
    delete from table1 where 条件
    insert table1 select * from #tmp
    drop table #tmp 
      

  6.   

    要在SQL中删除重复记录,可以在VFP中建立视图(可更新),限定条件把你要删除的记录筛选出来,这时视图中出现的是几条重复的记录,把记录COPY到一个临时表中,然后删除视图中的记录,此时会出现更新冲突,只要退出VFP就可以了,再打开VFP,把临时表打开。
       SCATTER MEMVAR
       打开视图
       APPEND BLANK
       GATHER MEMVAR
      就OK了!      
      

  7.   

    按鍵值分組統計比較好
    DELETE FROM TABLE WHERE KEY1 IN (SELECT KEY1 FROM TABLE1 GROUP BY KEY1 HAVING(COUNT(*))>1)
    TABLE1 為表名
    KEY1為唯一欄位,可用組合鍵,用+連接 
      

  8.   


    按鍵值分組統計比較好
    DELETE FROM TABLE1 WHERE KEY1 IN (SELECT KEY1 FROM TABLE1 GROUP BY KEY1 HAVING(COUNT(*))>1)
    TABLE1 為表名
    KEY1為唯一欄位,可用組合鍵,用+連接 更正
      

  9.   

    在 QUERY 中执行如下语句:select * into #tmp from source_table
    delete from source_table
    insert into source_table select distinct source_table.所有字段的列表 from #tmp
    drop table #tmp
      

  10.   

    acjin(无地自荣)提出的解决办法很好,我已经实现了,谢谢。