SQL:删除SQL Server中的重复记录

标签 sql sql-server sql-server-2008 sql-server-2008-express

我有一个 SQL Server 数据库,我预先加载了大量数据行。

不幸的是,数据库中没有主键,并且表中现在存在重复信息。我不担心没有主键,但我担心数据库中有重复项...

有什么想法吗? (原谅我是一个sql server新手)

最佳答案

嗯,这就是表上应该有主键的原因之一。什么版本的 SQL Server?对于 SQL Server 2005 及更高版本:

;WITH r AS
(
    SELECT col1, col2, col3, -- whatever columns make a "unique" row
    rn = ROW_NUMBER() OVER (PARTITION BY col1, col2, col3 ORDER BY col1)
    FROM dbo.SomeTable
)
DELETE r WHERE rn > 1;

然后,这样您就不必明天、后天和后天再次执行此操作,在表上声明主键。

关于SQL:删除SQL Server中的重复记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1772592/

相关文章:

MySQL 语法错误 - END IF 行

mysql - 根据每位员工的功绩点从最高到最低对每个员工进行排名

sql - 测试动态查询中是否有任何更新

node.js - 将 SQL Server 数据迁移到 Neo4j 并使两个数据库的数据保持同步

mysql - 使用逗号分隔列表中的单个值作为参数

c# - 运行带参数的存储过程

SQL Server 内连接和子查询

sql - 在 SQL Server 中,如何创建表的引用变量?

sql - 比较表中的列值计数

sql-server - 删除 SQL 行,忽略所有外键和约束