Hur tar man bort duplicerade rader från en SQL Server-tabell?



Prova Vårt Instrument För Att Eliminera Problem

När du utformar objekt i SQL Server måste vi följa vissa bästa metoder. Till exempel bör en tabell ha primära nycklar, identitetskolumner, klustrade och oklusterade index, dataintegritet och prestandabegränsningar. SQL Server-tabellen bör inte innehålla dubbla rader enligt bästa praxis i databasdesign. Ibland måste vi dock hantera databaser där dessa regler inte följs eller där undantag är möjliga när dessa regler avsiktligt kringgås. Även om vi följer de bästa metoderna kan vi möta problem som dubbla rader.



Till exempel kan vi också få den här typen av data när vi importerar mellanliggande tabeller, och vi vill ta bort överflödiga rader innan vi faktiskt lägger till dem i produktionstabellerna. Dessutom bör vi inte lämna möjligheten att duplicera rader eftersom dubblettinformation möjliggör flera hanteringar av förfrågningar, felaktiga rapporteringsresultat och mer. Men om vi redan har dubbla rader i kolumnen måste vi följa specifika metoder för att rensa dubblettdata. Låt oss titta på några sätt i den här artikeln för att ta bort duplicering av data.



Tabellen som innehåller dubbla rader



Hur tar man bort duplicerade rader från en SQL Server-tabell?

Det finns ett antal sätt i SQL Server att hantera dubbletter av poster i en tabell baserat på särskilda omständigheter som:

Ta bort dubbletterader från en unik SQL Server-tabell för index

Du kan använda indexet för att klassificera duplikatdata i unika indextabeller och sedan radera duplikatposter. Först måste vi skapa en databas med namnet “test_database”, skapa sedan en tabell “ Anställd ”Med ett unikt index genom att använda koden nedan.

ANVÄNDA master GO CREATE DATABASE test_database GO USE [test_database] GO CREATE TABLE Anställd ([ID] INT INTE NULL IDENTITET (1,1), [Dep_ID] INT, [Namn] varchar (200), [e-post] varchar (250) NULL , [city] varchar (250) NULL, [address] varchar (500) NULL CONSTRAINT Primary_Key_ID PRIMARY KEY (ID))

Resultatet blir som nedan.



Skapa tabellen 'Anställd'

Infoga nu data i tabellen. Vi infogar också dubbla rader. ”Dep_ID” 003,005 och 006 är dubbletterader med liknande data i alla fält utom identitetskolumnen med ett unikt nyckelindex. Utför koden nedan.

ANVÄND [test_database] GÅ INSÄTT IN I anställd (Dep_ID, namn, e-postadress, ort, adress) VÄRDEN (001, 'Aaaronboy Gutierrez