sqlserver2005 表中没有设置主键,
但有两条完全相同的记录,想删除其中一条,不能删除,这两条记录都不能删除
如何删除这两条记录

解决方案 »

  1.   

    没有看明白你的详细意思,不过按照我的理解。假如是删除两条记录的其中一条的话,你可以这样:delete from 
    (
    select *,ps=row_number()over(order by getdate())
    from table
    where id='重复记录的那个id'
    ) a
    where a.ps=2
      

  2.   

    delete from ( select *,ps=row_number()over(order by getdate()) from tablewhere id='重复记录的那个id') a where a.ps<>1删除多条重复,只留下一条
      

  3.   

    yes  delete  其中1条
      

  4.   

    用distinct的方法,把所有数据查出来(此时已经是唯一了),插入一个临时表。然后truancate源表,再把临时表的数据插回来,最后建议建立一个主键或者自增ID.
      

  5.   

    如果是两条相同记录,没有主键。不能同时删除这两条记录,必须保留一条,那么用楼上DBA的方法。
      

  6.   

    楼主的意思是两条完全相同的记录,但是没有标识列,怎么删除,如果有id就好办了,
    name  age
    test  22
    test  22
      

  7.   

    select distinct * into temp from tablename
    delete from tablename
    insert into tablename select * from temp
      

  8.   

    建立一个临时表过渡一下select distinct * into #Tmp from tableName
    drop table tableName
    select * into tableName from #Tmp
    drop table #Tmp1
      

  9.   

    这个不行啊。有语法错误delete a from ( select *,ps=row_number()over(order by getdate()) from tablewhere id='重复记录的那个id') a where a.ps=2