Ако приемем, че няма нулеви стойности, вие GROUP BY уникалните колони и SELECT MIN (or MAX) RowId като ред за запазване. След това просто изтрийте всичко, което няма идентификатор на ред:
DELETE FROM MyTable
LEFT OUTER JOIN (
SELECT MIN(RowId) as RowId, Col1, Col2, Col3
FROM MyTable
GROUP BY Col1, Col2, Col3
) as KeepRows ON
MyTable.RowId = KeepRows.RowId
WHERE
KeepRows.RowId IS NULL
В случай, че имате GUID вместо цяло число, можете да замените
MIN(RowId)
с
CONVERT(uniqueidentifier, MIN(CONVERT(char(36), MyGuidColumn)))