Databasadministratörer vet att enstaka fel uppstår , och dubbla poster förs in i databasen . Frågan är ett vanligt problem för administratörer att fixa , men ta bort poster från en SQL -server är en känslig situation . Förvaltaren ges i uppdrag att ta bort poster utan att oavsiktligt tar bort alla andra uppgifter , vilket kan hända lätt om frågan inte bygga ordentligt . Lär dig att ta bort dubbla poster i SQL samtidigt bevara originaldokument . Saker du behöver
Microsoft SQL Server (2005 eller 2008 )
Visa fler instruktioner
1
Open Enterprise Manager för SQL Server . Du måste köra frågor för att kontrollera dubbletter . Det kommer också att ge dig en uppfattning om hur många poster måste tas bort . Stora frågor kan kräva att du få ner SQL server för underhåll
2
Type i konsolen : . Select count ( * ) från TheTableandselect distinkt * från TheTableThe 1st kommandot talar om hur många totala antalet poster du har i tabellen , och den 2: a kommandot talar om hur många dubbletter du har . Dock förutsätter det 2nd kommando som poster är helt samma , vilket innebär alla små variansen inte kommer att ingå i den dubblerade tabellen .
3
Kopiera poster i en separat tabell . Följande kommando kopierar endast poster som är distinkt och lämnar ut någon duplicates.select distinkt * i TempTablefrom TheTable
4
bort dubbletter . Följande fråga bort alla dubbletter från den ursprungliga tabellen , men det bevarar en kopia av den ursprungliga posten . Den " uniqueField " kolumnen är primärnyckel eller ett unikt index set på den ursprungliga tabellen . Den " dupField " kolumnen är det fält som bestäms vara en trigger för duplikat . Till exempel , om du har en kund bord med dubbletter , kan du bestämma att mer än 1 rad med samma personnummer är en dubblett field.delete från TheTablewhere uniqueField inte ( välj min ( uniqueField ) från TempTable T2where T2.dupField = MyTable.dupField )
5
Kontrollera resultatet . Kör samma frågor från Steg 1 . Det totala antalet av den ursprungliga tabellen bör vara skillnaden mellan antalet räknade före borttagningsfråga och utplånas antalet från tabellen. Dessutom bör köra distinkta frågan har samma antal som den 1: a frågan .