• Since I have worked with Oracle I have removed duplicates using the rowid column. SQL Server has something similar but its an undocumented feature (might be changed without notice).

    delete

    from table t1

    where exists

    (select *

    from table t2

    where t1.column1 = t2.column1

    and t1.column2 = t2.column2

    ...

    and t1.rowid > t2. rowid) -- in Oracle

    and t1.%%physloc%% > %%physloc%%) -- in SQL Server

    This self join can be useful, you dont need to compare all rows for example and it removed more than one row in case of tripple duplicates.