Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SQL:excluindo registros duplicados no SQL Server


Bem, esta é uma razão pela qual você deve ter uma chave primária na mesa. Qual versão do SQL Server? Para SQL Server 2005 e superior:
;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;

Então, para que você não precise fazer isso novamente amanhã, e no dia seguinte, e no dia seguinte, declare uma chave primária na tabela.