Kuidas eemaldada dubleerivad read SQL Serveri tabelist?



Proovige Meie Instrumenti Probleemide Kõrvaldamiseks

Objektide kujundamisel SQL Serveris peame järgima teatavaid parimaid tavasid. Näiteks peaks tabelil olema peamised võtmed, identiteedi veerud, klastrilised ja klastrimata indeksid, andmete terviklikkuse ja jõudluse piirangud. SQL Serveri tabel ei tohiks sisaldada duplikaatridu vastavalt andmebaasi kujundamise parimatele tavadele. Mõnikord peame siiski tegelema andmebaasidega, kus neid reegleid ei järgita või kus reeglitest tahtlikult mööda minnes on võimalikud erandid. Isegi kui järgime parimaid tavasid, võime silmitsi seista selliste probleemidega nagu duplikaatread.



Näiteks võiksime seda tüüpi andmeid hankida ka vahetabelite importimisel ja me sooviksime üleliigsed read enne nende reaalseks lisamist tootmistabelitesse kustutada. Lisaks ei tohiks me jätta ridade dubleerimise väljavaadet, kuna teabe duplikaat võimaldab taotlusi mitmekordselt töödelda, valesid aruandlustulemusi ja palju muud. Kui meil on aga veerus juba duplikaatread, peame duplikaadiandmete puhastamiseks järgima konkreetseid meetodeid. Vaatame selles artiklis mõningaid viise andmete dubleerimise eemaldamiseks.



Tabel, mis sisaldab duplikaatridu



Kuidas eemaldada dubleerivad read SQL Serveri tabelist?

SQL Serveris on duplikaatide kirjete haldamiseks tabelis mitmeid viise, mis põhinevad konkreetsetel asjaoludel, näiteks:

Korduvate ridade eemaldamine unikaalsest indeksi SQL Serveri tabelist

Indeksi abil saate klassifitseerida duplikaatandmed unikaalsetes indeksitabelites ja seejärel duplikaadikirjed kustutada. Esiteks peame seda tegema luua andmebaas nimega “test_database”, seejärel looge tabel “ Töötaja ”Ainulaadse indeksiga, kasutades allpool toodud koodi.

KASUTA kapten GO Loo andmebaas GO KASUTA [test_database] GO Loo tabel Töötaja ([ID] INT EI NULL IDENTITEET (1,1), [Dep_ID] INT, [Nimi] varchar (200), [email] varchar (250) NULL , [linn] varchar (250) NULL, [aadress] varchar (500) NULL CONSTRAINT Esmane_Key_ID PRIMARY KEY (ID))

Väljund on järgmine.



Tabeli “Töötaja” koostamine

Nüüd sisestage andmed tabelisse. Lisame ka duplikaatread. „Dep_ID” 003 005 ja 006 on duplikaatread, millel on sarnased andmed kõigil väljadel, välja arvatud ainulaadse võtmeindeksiga veerg identiteet. Käivitage allpool toodud kood.

KASUTAGE [test_database] Minge INSERT INTO töötaja (Dep_ID, nimi, e-posti aadress, linn, aadress) VALUES (001, 'Aaaronboy Gutierrez