How to remove duplicate records in SQL Server table with Primary Key and without primary key?

I found many link to remove duplicate records in SQL Server. But Please let me know which method is the best in SQL Server 2005 and 2008 Table with Primary key and also without primary key. Thanks.
PKTGAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

mysteriousguyCommented:
If the records are really duplicate and have no primary key, i would prefer the possibility described in this blogpost: http://blog.sqlauthority.com/2009/06/23/sql-server-2005-2008-delete-duplicate-rows/
If there is a primary key, I would determine the keys of the duplicate rows an delete them by using this key as identifier.
0
Raja Jegan RSQL Server DBA & Architect, EE Solution GuideCommented:
This would be the best method for deleting duplicate records in SQL Server 2005 and 2008:

Hope this helps
-- Table with Primary Key
 
WITH cte(pk, rnum) as
(SELECT pk FROM 
(SELECT pk, row_number() OVER ( partition BY col1, col2 ORDER BY date_col ) rnum
 FROM urtable) temp
WHERE rnum > 1)
DELETE FROM urtable
WHERE pk IN (SELECT pk FROM cte);
 
-- Table without Primary Key but col1 and col2 defines unique records
 
WITH cte(col1, col2, rnum) AS
( SELECT col2 FROM 
(SELECT col1, col2, row_number() OVER ( partition BY col1, col2 ORDER BY date_col ) rnum
 FROM urtable) temp
WHERE rnum > 1)
DELETE FROM urtable
WHERE col1 IN ( SELECT col1 FROM cte)
AND col2 IN ( SELECT col2 FROM cte);

Open in new window

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
RiteshShahCommented:
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft SQL Server 2005

From novice to tech pro — start learning today.