Solved

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

Posted on 2009-07-13
3
529 Views
Last Modified: 2012-08-14
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.
0
Comment
Question by:PKTG
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
3 Comments
 
LVL 4

Assisted Solution

by:mysteriousguy
mysteriousguy earned 75 total points
ID: 24846474
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
 
LVL 57

Accepted Solution

by:
Raja Jegan R earned 100 total points
ID: 24846480
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
 
LVL 31

Assisted Solution

by:RiteshShah
RiteshShah earned 75 total points
ID: 24846539
0

Featured Post

MS Dynamics Made Instantly Simpler

Make Your Microsoft Dynamics Investment Count  & Drastically Decrease Training Time by Providing Intuitive Step-By-Step WalkThru Tutorials.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Add a step to a system backup job 6 50
Applying Roles in Common Scenarios 3 40
T-SQL: How to extract records into a new table 7 43
SQL DATE Past due to current wek 4 20
If you have heard of RFC822 date formats, they can be quite a challenge in SQL Server. RFC822 is an Internet standard format for email message headers, including all dates within those headers. The RFC822 protocols are available in detail at:   ht…
Ever needed a SQL 2008 Database replicated/mirrored/log shipped on another server but you can't take the downtime inflicted by initial snapshot or disconnect while T-logs are restored or mirror applied? You can use SQL Server Initialize from Backup…
In a recent question (https://www.experts-exchange.com/questions/29004105/Run-AutoHotkey-script-directly-from-Notepad.html) here at Experts Exchange, a member asked how to run an AutoHotkey script (.AHK) directly from Notepad++ (aka NPP). This video…

738 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question