Microsoft KB Archive/70956

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

Article ID: 70956

Article Last Modified on 11/2/2007

-

APPLIES TO


 * Microsoft SQL Server 2005 Standard Edition
 * Microsoft SQL Server 2005 Express Edition
 * Microsoft SQL Server 2005 Workgroup Edition
 * Microsoft SQL Server 2005 Developer Edition
 * Microsoft SQL Server 2005 Enterprise Edition
 * Microsoft SQL Server 2000 Personal Edition
 * Microsoft SQL Server 2000 Standard Edition
 * Microsoft SQL Server 2000 Workgroup Edition
 * Microsoft SQL Server 2000 Developer Edition
 * Microsoft SQL Server 2000 Enterprise Edition
 * Microsoft SQL Server 7.0 Standard Edition
 * Microsoft SQL Server 7.0 Service Pack 1
 * Microsoft SQL Server 6.5 Standard Edition
 * Microsoft SQL Server 6.0 Standard Edition
 * Microsoft SQL Server 4.21a Standard Edition

-



This article was previously published under Q70956



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.

Additional query words: Windows NT

Keywords: kbprogramming KB70956

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.