Eliminación de registros duplicados en SQLServer

Tip de MSSQLTips para eliminar filas duplicadas en una tabla sin clave primaria, utilizando SET ROWCOUNT para limitar el número de filas afectadas por una consulta:

SELECT * FROM dbo.duplicateTest;
SET ROWCOUNT 1;
DELETE FROM dbo.duplicateTest WHERE ID = 1;
SET ROWCOUNT 0;

 

Otra propuesta más clásica sacada de un grupo de Linkedin (cuidado si la tabla es grande):

DELETE FROM TestTable WHERE
EXISTS
(SELECT Sid FROM TestTable T WHERE T.Tname = TestTable.Tname AND I.SId < TestTable.SId)