How to remove duplicate rows from a SQL Server table by using a script

Summary

You can use the following script to remove duplicate rows from a Microsoft SQL Server table:
   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
When this script is executed, it follows these steps:
  1. It moves one instance of any duplicate row in the original table to a duplicate table.
  2. It deletes all rows from the original table that also reside in the duplicate table.
  3. It moves the rows in the duplicate table back into the original table.
  4. It drops the duplicate table.

More Information

This method is simple. However, it requires that you have sufficient space available in the database to temporarily build the duplicate table.
Propriedades

ID do Artigo: 70956 - Última Revisão: 10/07/2008 - Revisão: 1

Comentários