• Steve,

    It is mentioned at

    http://www.sqlservercentral.com/Forums/Topic793765-145-1.aspx

    It uses CTE with delete. Very neat.

    create table t(a varchar(1))

    insert into t values('b')

    insert into t values('a')

    insert into t values('b')

    insert into t values('a')

    with

    dup as

    (

    select a,row_number() over(partition by a order by a) rn

    from t

    )

    delete from dup where rn>1

    In Oracle this would be pretty straight forward via the use of the pseudo rowid column that all tables have.

    This references a physical (and thus unique) address of each row.

    At this link

    http://www.codeproject.com/Articles/159785/Physical-location-of-a-row-in-SQL-Server

    there is an interesting discussion of undocumented %%physloc%% and %%lockres%% columns starting with SS2008R2.