我有一个 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/