Quitar filas duplicadas de una tabla de SQL Server mediante un script

En este artículo se muestra la secuencia de comandos que se puede usar para quitar filas duplicadas de una tabla de SQL Server.

Versión del producto original:   SQL Server
Número de KB original:   70956

Resumen

Puede usar el siguiente script 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 este script, sigue 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. Vuelve a mover las filas de la tabla duplicada a la tabla original.
  4. Elimina la tabla duplicada.

Más información

Este método es sencillo. Sin embargo, es necesario disponer de suficiente espacio disponible en la base de datos para crear temporalmente la tabla duplicada.