Eliminación de registros duplicados en SQLServer
Eliminación de registros duplicados en SQLServer Carlos 11 Agosto, 2010 - 10:27Tip 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)
Hola Creo que es más
Subido por Anonimo (no verificado) el 16 Noviembre, 2014 - 15:47
Muy buena solución para
Subido por Carlos el 20 Noviembre, 2014 - 09:20
En respuesta a Hola Creo que es más por Anonimo (no verificado)
Muy buena solución para eliminar duplicados, gracias por compartirla.
Además acabo de encontrar este aviso en la documentación de SQLServer sobre SET ROWCOUNT:
Eso significa que el truco de utilizar el SET ROWCOUNT 1 en el DELETE dentro de poco ya no funcionará, así que mejor nos acostumbramos a hacerlo de otra manera, como con este bloque CTE (Expresión de Tabla Común) o, para decirlo de manera mas llana, 'utilizando un ;with'