Cum se elimină rândurile duplicate dintr-un tabel SQL Server?



Încercați Instrumentul Nostru Pentru Eliminarea Problemelor

Când proiectăm obiecte în SQL Server, trebuie să urmăm anumite bune practici. De exemplu, un tabel ar trebui să aibă chei primare, coloane de identitate, indexuri grupate și necluse, integritatea datelor și constrângeri de performanță. Tabelul SQL Server nu trebuie să conțină rânduri duplicate conform celor mai bune practici în proiectarea bazei de date. Uneori, totuși, trebuie să ne ocupăm de baze de date în care aceste reguli nu sunt respectate sau unde sunt posibile excepții atunci când aceste reguli sunt ocolite în mod intenționat. Chiar dacă urmăm cele mai bune practici, este posibil să ne confruntăm cu probleme precum rândurile duplicate.



De exemplu, am putea obține acest tip de date în timp ce importăm tabele intermediare și am dori să ștergem rândurile redundante înainte de a le adăuga în tabelele de producție. Mai mult, nu ar trebui să lăsăm perspectiva duplicării rândurilor, deoarece informațiile duplicate permit gestionarea multiplă a cererilor, rezultate incorecte de raportare și multe altele. Cu toate acestea, dacă avem deja rânduri duplicate în coloană, trebuie să urmăm metode specifice pentru a curăța datele duplicate. Să analizăm câteva modalități din acest articol de a elimina duplicarea datelor.



Tabelul care conține rânduri duplicate



Cum se elimină rândurile duplicate dintr-un tabel SQL Server?

Există mai multe moduri în SQL Server de a gestiona înregistrările duplicate într-un tabel pe baza circumstanțelor particulare, cum ar fi:

Eliminarea rândurilor duplicate dintr-un tabel unic index SQL Server

Puteți utiliza indexul pentru a clasifica datele duplicate în tabele index unice, apoi ștergeți înregistrările duplicate. În primul rând, trebuie creați o bază de date numit „test_database”, apoi creați un tabel „ Angajat ”Cu un index unic utilizând codul de mai jos.

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

Ieșirea va fi cea de mai jos.



Crearea tabelului „Angajat”

Acum introduceți date în tabel. Vom insera și rânduri duplicate. „Dep_ID” 003,005 și 006 sunt rânduri duplicate cu date similare în toate câmpurile, cu excepția coloanei de identitate cu un index de cheie unic. Executați codul dat mai jos.

UTILIZAȚI [test_database] INTRODUȚI ÎN angajat (Dep_ID, nume, e-mail, oraș, adresă) VALORI (001, 'Aaaronboy Gutierrez