如何删除PK为uniqueidentifier字段的重复记录

时间:2012-09-07 17:38:47

标签: sql sql-server sql-server-2008 tsql

我想知道我们可以删除PK是uniqueidentifier的重复记录的方式。 我必须根据一组字段中的重复值删除记录。我们可以使用选项来使用Row_Number()获取temptable,除了第一行,我们可以删除rest或记录。 但我想建立一个班轮查询。有什么建议吗?

2 个答案:

答案 0 :(得分:6)

您可以使用CTE执行此操作,而不会在此处看到您的表结构是基本SQL

;with cte as
(
    select *, row_number() over(partition by yourfields order by yourfields) rn
    from yourTable
)
delete
from cte
where rn > 1

答案 1 :(得分:0)

delete from table t using table ta where ta.dup_field=t.dup_field and t.pk >ta.pk
;