• clever but on large tables probably inparactical due to lock escalation and the time taken to do disk based delete and reindex operations.

    alternatives could be a Unique indexed view based around select Distinct * from PhoneBook.

    or a select distinct into Phonebook2 combined with rename Table operations.

    You could also stop the duplicates getting in there in the first place with an insert trigger. You can use Binary_checksum(*) function on the inserted table to check aginst the Binary_Checksum(*) of existing Rows