Hoe verwijder ik dubbele rijen uit een SQL Server-tabel?



Probeer Ons Instrument Voor Het Oplossen Van Problemen

Bij het ontwerpen van objecten in SQL Server moeten we bepaalde best practices volgen. Een tabel moet bijvoorbeeld primaire sleutels, identiteitskolommen, geclusterde en niet-geclusterde indexen, gegevensintegriteit en prestatiebeperkingen hebben. De SQL Server-tabel mag geen dubbele rijen bevatten volgens best practices in databaseontwerp. Soms hebben we echter te maken met databases waarin deze regels niet worden gevolgd of waar uitzonderingen mogelijk zijn wanneer deze regels opzettelijk worden omzeild. Hoewel we de praktische tips volgen, kunnen we problemen tegenkomen zoals dubbele rijen.



We zouden dit type gegevens bijvoorbeeld ook kunnen krijgen tijdens het importeren van tussenliggende tabellen, en we willen overtollige rijen verwijderen voordat we ze daadwerkelijk aan de productietabellen toevoegen. Bovendien moeten we het vooruitzicht voor dubbele rijen niet verlaten, omdat dubbele informatie meerdere afhandeling van verzoeken, onjuiste rapportageresultaten en meer mogelijk maakt. Als we echter al dubbele rijen in de kolom hebben, moeten we specifieke methoden volgen om de dubbele gegevens op te schonen. Laten we in dit artikel enkele manieren bekijken om gegevensduplicatie te verwijderen.



De tabel met dubbele rijen



Hoe verwijder ik dubbele rijen uit een SQL Server-tabel?

Er zijn een aantal manieren in SQL Server om dubbele records in een tabel af te handelen op basis van bepaalde omstandigheden, zoals:

Dubbele rijen verwijderen uit een unieke SQL Server-indextabel

U kunt de index gebruiken om de dubbele gegevens in unieke indextabellen te classificeren en vervolgens de dubbele records te verwijderen. Ten eerste moeten we maak een database met de naam 'test_database', maak vervolgens een tabel ' Werknemer ”Met een unieke index door de onderstaande code te gebruiken.

GEBRUIK master GO CREATE DATABASE test_database GO USE [test_database] GO CREATE TABLE Werknemer ([ID] INT NOT NULL IDENTITY (1,1), [Dep_ID] INT, [Name] varchar (200), [email] varchar (250) NULL , [stad] varchar (250) NULL, [adres] varchar (500) NULL CONSTRAINT Primary_Key_ID PRIMARY KEY (ID))

De output is zoals hieronder.



De tabel 'Medewerker' maken

Voeg nu gegevens in de tabel in. We zullen ook dubbele rijen invoegen. De 'Dep_ID' 003,005 en 006 zijn dubbele rijen met vergelijkbare gegevens in alle velden behalve de identiteitskolom met een unieke sleutelindex. Voer de onderstaande code uit.

GEBRUIK [test_database] GA INSERT IN Werknemer (Departement_ID, Naam, e-mail, stad, adres) WAARDEN (001, 'Aaaronboy Gutierrez