• dealing with duplicates on a daily basis, i find this approach works well

    alter table withdupes add delid int identity(1,1)

    delete x

    from withdupes x

    inner join (

    select itemno, min(delid) as keepid

    from withdupes

    group by itemno

    ) y on x.itemo = y.itemno

    where x.delid <> y.keepid

    alter table withdupes drop column delid