Monday, January 24, 2011

Query for delete the duplicate records in Sqlserver

/* Delete Duplicate records If table don't have primary key */
WITH CTE (COl1,Col2DuplicateCount)
AS
(
SELECT COl1,Col2,ROW_NUMBER() OVER(PARTITION BY COl1,Col2 ORDER BY Col1ASDuplicateCountFROM DuplicateRcordTable
)
DELETE
FROM 
CTEWHERE DuplicateCount 1
GO



/*Delete the  duplicate record if table have primary key */


DELETE
FROM 
MyTableWHERE ID NOT IN(SELECT MAX(ID)FROM MyTableGROUP BY DuplicateColumn1DuplicateColumn2DuplicateColumn3)

No comments:

Post a Comment