Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

SQL :suppression des enregistrements en double dans SQL Server

Eh bien, c'est une des raisons pour lesquelles vous devriez avoir une clé primaire sur la table. Quelle version de SQL Server ? Pour SQL Server 2005 et supérieur :

;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;

Ensuite, pour que vous n'ayez pas à refaire cela demain, et le lendemain, et le surlendemain, déclarez une clé primaire sur la table.