CREATE TABLE TEMP ( Col1 INT, Col2 INT ) GO
INSERT INTO TEMP SELECT 1, 1 UNION ALL SELECT 1, 1 UNION ALL SELECT 1, 1 UNION ALL SELECT 1, 2 UNION ALL SELECT 1, 2 UNION ALL SELECT 1, 3 UNION ALL SELECT 1, 4 GO
SELECT * FROM TEMP GO
WITH CTE(Col1, Col2, DuplicateCount) AS( SELECT Col1 , Col2 , ROW_NUMBER() OVER(PARTITION BY Col1, Col2 ORDER BY Col1) AS DuplicateRow FROM TEMP ) DELETE FROM CTE WHERE DuplicateRow > 1 SELECT * FROM TEMP DROP TABLE TEMP