Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

SQL:eliminazione di record duplicati in SQL Server

Bene, questo è uno dei motivi per cui dovresti avere una chiave primaria sul tavolo. Quale versione di SQL Server? Per SQL Server 2005 e versioni successive:

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

Quindi, quindi non devi farlo di nuovo domani, e il giorno successivo, e il giorno dopo, dichiara una chiave primaria sul tavolo.