Cómo quitar filas duplicadas de una tabla de SQL Server mediante una secuencia de comandos


Resumen


Puede utilizar la siguiente secuencia de comandos para quitar filas duplicadas de una tabla de Microsoft SQL Server:
   SELECT DISTINCT *      INTO duplicate_table
FROM original_table
GROUP BY key_value
HAVING COUNT(key_value) > 1

DELETE original_table
WHERE key_value
IN (SELECT key_value
FROM duplicate_table)

INSERT original_table
SELECT *
FROM duplicate_table

DROP TABLE duplicate_table

Cuando se ejecuta esta secuencia de comandos, siga estos pasos:
  1. Mueve una instancia de cualquier fila duplicada en la tabla original a una tabla duplicada.
  2. Elimina todas las filas de la tabla original que también residen en la tabla duplicada.
  3. Mueve las filas en la tabla duplicada en la tabla original.
  4. Elimina la tabla duplicada.

Más información


Este método es sencillo. Sin embargo, requiere que haya suficiente espacio disponible en la base de datos para generar temporalmente la tabla duplicada.