Database administrators weten dat incidenteel fouten optreden , en de dubbele records worden ingevoegd in de database. De kwestie is een gemeenschappelijk probleem voor beheerders op te lossen , maar het verwijderen van records uit een SQL server is een delicate situatie . De beheerder krijgt de taak van het verwijderen van records , zonder per ongeluk verwijderen van alle andere gegevens , die gemakkelijk kan gebeuren als de query niet goed op te bouwen. Leer hoe u dubbele records in SQL verwijdert met behoud van de originele stukken. Wat je nodig hebt Microsoft SQL Server ( 2005 of 2008 ) op Twitter Toon Meer Aanwijzingen 1 Open Enterprise Manager voor SQL Server . Je nodig hebt om query's te controleren op dubbele inhoud . Het zal ook geeft u een idee van hoeveel records worden geschrapt nodig . Grote vragen kunt u eisen dat de SQL -server voor onderhoud naar beneden te brengen type 2 in de console : . Select count ( * ) van TheTableandselect onderscheiden * van TheTableThe 1 commando vertelt je hoeveel totaal verslagen je hebt in de tabel , en de 2e commando vertelt je hoeveel duplicaten je hebt . Echter , de 2e opdracht uitgegaan van een administratie zijn volledig het zelfde , wat betekent dat elke kleine variatie zal niet worden opgenomen in de gedupliceerde tabel . Copy platen 3 in een aparte tabel . De volgende opdracht kopieën alleen records die zijn onderscheiden en weglaat elke duplicates.select onderscheiden * in TempTablefrom thetable Delete duplicaten 4 . De volgende vraag verwijdert alle duplicaten van de oorspronkelijke tabel , maar het bewaart 1 kopie van de originele opname . De " uniqueField " kolom is de primaire sleutel of unieke index set op de oorspronkelijke tabel . De " dupField " kolom is het veld dat vastbesloten is om een trigger voor het dupliceren . Bijvoorbeeld , als u een klant tafel met duplicaten , kan je vaststellen dat meer dan 1 record met dezelfde sofinummer is een duplicaat field.delete van TheTablewhere uniqueField niet in ( select min ( uniqueField ) uit TempTable T2where T2.dupField = MyTable.dupField ) 5 Controleer de resultaten . Rijden op de zelfde vragen van Stap 1 . Het totale aantal van de oorspronkelijke tabel moet het verschil tussen het aantal geteld voordat de query verwijderen en het nummer van de lijst geschrapt worden . Daarnaast lopen de afzonderlijke vraag moeten dezelfde telling als de 1e query.
|