2009-03-10 18 views

cevap

7

here'dan. Zaten her satiri tanımlayan bir "Kimlik" alanı yoksa bunun işe yaraması için (bitirdiniz sonra her zaman sadece sütun bırakın), oluşturmanız gerekir:

DELETE 
FROM MyTable 
WHERE ID NOT IN 
(
SELECT MAX(ID) 
FROM MyTable 
GROUP BY DuplicateColumn1, DuplicateColumn2, DuplicateColumn2) 

Ayrıca, "yinelenen satır sql sunucusunu sil" için bu sitede bir arama yapın ve bu sorunun burada birçok kez yanıtlandığını göreceksiniz.

+0

SO: http://stackoverflow.com/questions/18932/sql-how-can-i-remove-duplicate-rows – alextansc

+0

+1'de böyle bir bağlantı doğru bir yanıt, referans bütünlüğü sorunu üzerine yorum yapmak ve bana öğretmek için tek seferde yeni bir şey. –

0

Kullanım:
Seti RowCount 1

Sonra Bu eşleşen birden çok satır var ne olursa olsun, 1 satır silinecektir silme sql

çalıştırın. Daha sonra, sorgu penceresini kapatın ya da sıfırlamak için Set RowCount 0 öğesini kullanın.

2
DECLARE @Duplicates TABLE (AValue VARCHAR(32)) 

INSERT INTO @Duplicates VALUES ('No Duplicate') 
INSERT INTO @Duplicates VALUES ('Duplicate') 
INSERT INTO @Duplicates VALUES ('Duplicate') 


SELECT ID = IDENTITY(INT, 1, 1), * 
INTO #Duplicates 
FROM @Duplicates 

DELETE FROM #Duplicates 
FROM #Duplicates d 
    INNER JOIN (
     SELECT ID = MIN(ID) 
     FROM #Duplicates 
     GROUP BY AValue 
     HAVING COUNT(*) > 1 
    ) id ON id.ID = d.ID 

DELETE FROM @Duplicates 

INSERT INTO @Duplicates 
SELECT AValue FROM #Duplicates 

DROP TABLE #Duplicates 

SELECT * FROM @Duplicates 
0
  • INTO OldTable
  • INSERT DELETE FROM OldTable
  • DISTINCT * SEÇ temptable aynı şema
  • INSERT INTO geçici tablo oluşturun OldTable SEÇ *
  • temptable temptable
  • menüden

Ve unutmayın:

  • bu yine
1
;WITH tempTable AS 
    ( 
      SELECT ROW_NUMBER() OVER (PARTITION BY Column1 ORDER BY Column2) AS rownumber,* 
      FROM @Table 
    ) 
    DELETE FROM tempTable WHERE rownumber > 1 

Bu cevaplardan birinde belirtilen makalede bağlantısından alınır ama sadece bazen gelecekte birini kurtarmak için olmasına izin vermeyeceğim için tablolar Refactor ..

İlgili konular