?
Solved

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

Posted on 2009-07-13
3
Medium Priority
?
531 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 300 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 400 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 300 total points
ID: 24846539
0

Featured Post

NFR key for Veeam Agent for Linux

Veeam is happy to provide a free NFR license for one year.  It allows for the non‑production use and valid for five workstations and two servers. Veeam Agent for Linux is a simple backup tool for your Linux installations, both on‑premises and in the public cloud.

Question has a verified solution.

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

There have been several questions about Large Transaction Log Files in SQL Server 2008, and how to get rid of them when disk space has become critical. This article will explain how to disable full recovery and implement simple recovery that carries…
This article explains how to reset the password of the sa account on a Microsoft SQL Server.  The steps in this article work in SQL 2005, 2008, 2008 R2, 2012, 2014 and 2016.
Monitoring a network: how to monitor network services and why? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the philosophy behind service monitoring and why a handshake validation is critical in network monitoring. Software utilized …
In this video, Percona Solution Engineer Dimitri Vanoverbeke discusses why you want to use at least three nodes in a database cluster. To discuss how Percona Consulting can help with your design and architecture needs for your database and infras…

770 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