Hvordan fjerne dupliserte rader fra en SQL Server-tabell?



Prøv Instrumentet Vårt For Å Eliminere Problemer

Når vi designer objekter i SQL Server, må vi følge visse gode fremgangsmåter. For eksempel bør en tabell ha primærnøkler, identitetskolonner, grupperte og usikkerte indekser, dataintegritet og ytelsesbegrensninger. SQL Server-tabellen skal ikke inneholde dupliserte rader i henhold til beste praksis i databasedesign. Noen ganger må vi imidlertid håndtere databaser der disse reglene ikke følges, eller hvor unntak er mulig når disse reglene forsettlig blir omgått. Selv om vi følger de beste fremgangsmåtene, kan vi møte problemer som dupliserte rader.



For eksempel kan vi også få denne typen data mens vi importerer mellomliggende tabeller, og vi vil gjerne slette overflødige rader før vi faktisk legger dem til i produksjonstabellene. Videre bør vi ikke overlate muligheten for å duplisere rader fordi duplikatinformasjon tillater flere håndtering av forespørsler, feil rapporteringsresultater og mer. Imidlertid, hvis vi allerede har dupliserte rader i kolonnen, må vi følge spesifikke metoder for å rydde opp dupliserte data. La oss se på noen måter i denne artikkelen for å fjerne dataduplisering.



Tabellen inneholder dupliserte rader



Hvordan fjerne dupliserte rader fra en SQL Server-tabell?

Det er flere måter i SQL Server å håndtere dupliserte poster i en tabell basert på spesielle omstendigheter, for eksempel:

Fjerne dupliserte rader fra en unik indeks SQL Server-tabell

Du kan bruke indeksen til å klassifisere duplikatdata i unike indekstabeller og deretter slette duplikatposter. Først må vi opprette en database kalt “test_database”, og opprett deretter en tabell “ Ansatt ”Med en unik indeks ved å bruke koden nedenfor.

BRUK master GO CREATE DATABASE test_database GO USE [test_database] GO CREATE TABLE Ansatt ([ID] INT IKKE NULL IDENTITET (1,1), [Dep_ID] INT, [Navn] varchar (200), [e-post] varchar (250) NULL , [by] varchar (250) NULL, [adresse] varchar (500) NULL CONSTRAINT Primary_Key_ID PRIMARY KEY (ID))

Resultatet blir som nedenfor.



Lage tabellen 'Ansatt'

Sett nå inn data i tabellen. Vi vil også sette inn dupliserte rader. 'Dep_ID' 003,005 og 006 er dupliserte rader med lignende data i alle felt unntatt identitetskolonnen med en unik nøkkelindeks. Utfør koden nedenfor.

BRUK [test_database] GO INSERT INTO Employee (Dep_ID, Name, email, city, address) VALUES (001, 'Aaaronboy Gutierrez