Как да премахна дублирани редове от таблица на SQL Server?



Опитайте Нашия Инструмент За Премахване На Проблемите

Когато проектираме обекти в SQL Server, трябва да следваме някои най-добри практики. Например, таблица трябва да има първични ключове, колони за идентичност, клъстерирани и неклъстерирани индекси, ограничения за целостта на данните и производителността. Таблицата на SQL Server не трябва да съдържа дублиращи се редове според най-добрите практики при проектирането на база данни. Понякога обаче трябва да се справим с бази данни, където тези правила не се спазват или където са възможни изключения, когато тези правила са умишлено заобиколени. Въпреки че следваме най-добрите практики, може да се сблъскаме с проблеми като дублиращи се редове.



Например, ние също бихме могли да получим този тип данни, докато импортираме междинни таблици, и бихме искали да изтрием излишни редове, преди да ги добавим в производствените таблици. Освен това не бива да оставяме перспективата за дублиране на редове, защото дублиращата се информация позволява многократна обработка на заявки, неправилни резултати от отчитане и други. Ако обаче в колоната вече имаме дублиращи се редове, трябва да следваме конкретни методи за почистване на дублиращите се данни. Нека разгледаме някои начини в тази статия за премахване на дублирането на данни.



Таблицата, съдържаща дублирани редове



Как да премахна дублирани редове от таблица на SQL Server?

В SQL Server има редица начини за обработка на дублиращи се записи в таблица въз основа на конкретни обстоятелства като:

Премахване на дублиращи се редове от уникална индексна таблица на SQL Server

Можете да използвате индекса, за да класифицирате дублиращите се данни в уникални индексни таблици, след което да изтриете дублиращите се записи. Първо, трябва създаване на база данни с име „test_database“, след което създайте таблица „ Служител ”С уникален индекс с помощта на кода, даден по-долу.

USE master GO CREATE DATABASE test_database GO USE [test_database] GO CREATE TABLE Служител ([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))

Резултатът ще бъде както по-долу.



Създаване на таблица „Служител“

Сега вмъкнете данни в таблицата. Ще вмъкнем и дублирани редове. „Dep_ID“ 003,005 и 006 са дублирани редове с подобни данни във всички полета с изключение на колоната за идентичност с уникален ключов индекс. Изпълнете кода, даден по-долу.

ИЗПОЛЗВАЙТЕ [test_database] ОТИДЕТЕ ВЪВЕЖДАНЕ В СЛУЖИТЕЛ (Идентификатор на_ Dep, Име, имейл, град, адрес) ЦЕННОСТИ (001, 'Aaaronboy Gutierrez