จะลบแถวที่ซ้ำกันออกจากตารางเซิร์ฟเวอร์ SQL ได้อย่างไร



ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา

เมื่อออกแบบวัตถุใน SQL Server เราต้องปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดบางประการ ตัวอย่างเช่นตารางควรมีคีย์หลักคอลัมน์ข้อมูลประจำตัวดัชนีคลัสเตอร์และไม่รวมกลุ่มความสมบูรณ์ของข้อมูลและข้อ จำกัด ด้านประสิทธิภาพ ตาราง SQL Server ไม่ควรมีแถวที่ซ้ำกันตามแนวทางปฏิบัติที่ดีที่สุดในการออกแบบฐานข้อมูล อย่างไรก็ตามบางครั้งเราจำเป็นต้องจัดการกับฐานข้อมูลที่ไม่ปฏิบัติตามกฎเหล่านี้หรือในกรณีที่มีข้อยกเว้นที่เป็นไปได้เมื่อกฎเหล่านี้ถูกข้ามโดยเจตนา แม้ว่าเราจะปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุด แต่เราอาจประสบปัญหาเช่นแถวที่ซ้ำกัน



ตัวอย่างเช่นเราสามารถรับข้อมูลประเภทนี้ได้ในขณะที่นำเข้าตารางกลางและเราต้องการลบแถวที่ซ้ำซ้อนก่อนที่จะเพิ่มลงในตารางการผลิตจริง ยิ่งไปกว่านั้นเราไม่ควรทิ้งผู้มีโอกาสเป็นลูกค้าในการทำซ้ำแถวเนื่องจากข้อมูลที่ซ้ำกันทำให้สามารถจัดการคำขอได้หลายรายการผลการรายงานที่ไม่ถูกต้องและอื่น ๆ อย่างไรก็ตามหากเรามีแถวที่ซ้ำกันในคอลัมน์แล้วเราจำเป็นต้องปฏิบัติตามวิธีการเฉพาะเพื่อล้างข้อมูลที่ซ้ำกัน ลองดูวิธีการบางอย่างในบทความนี้เพื่อลบการทำซ้ำข้อมูล



ตารางที่มีแถวที่ซ้ำกัน



จะลบแถวที่ซ้ำกันออกจากตารางเซิร์ฟเวอร์ SQL ได้อย่างไร

มีหลายวิธีใน SQL Server ในการจัดการเรกคอร์ดที่ซ้ำกันในตารางตามสถานการณ์เฉพาะเช่น:

การลบแถวที่ซ้ำกันออกจากตารางดัชนี SQL Server ที่ไม่ซ้ำกัน

คุณสามารถใช้ดัชนีเพื่อจำแนกข้อมูลที่ซ้ำกันในตารางดัชนีที่ไม่ซ้ำกันจากนั้นลบระเบียนที่ซ้ำกัน อันดับแรกเราต้อง สร้างฐานข้อมูล ชื่อว่า“ test_database” จากนั้นสร้างตาราง“ พนักงาน ” ด้วยดัชนีเฉพาะโดยใช้รหัสที่ระบุด้านล่าง

ใช้ต้นแบบ GO สร้างฐานข้อมูล test_database GO ใช้ [test_database] ไปสร้างพนักงานตาราง ([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] GO INSERT INTO Employee (Dep_ID, ชื่อ, อีเมล, เมือง, ที่อยู่) VALUES (001, 'Aaaronboy Gutierrez