Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie entferne ich doppelte Datensätze in einer Tabelle?

Sie geben Ihren Tabellennamen nicht an, aber ich denke, so etwas sollte funktionieren. Belassen Sie einfach den Datensatz, der zufällig die niedrigste ID hat. Vielleicht möchten Sie zuerst mit dem ROLLBACK in testen!

BEGIN TRAN
DELETE <table_name>
FROM <table_name> T1
WHERE EXISTS(
SELECT * FROM <table_name> T2 
WHERE     
T1.TYPE_INT = T2.TYPE_INT  AND
T1.SYSTEM_VALUE = T2.SYSTEM_VALUE  AND
T1.NAME = T2.NAME  AND
T1.MAPPED_VALUE = T2.MAPPED_VALUE  AND
T2.ID > T1.ID
)

SELECT * FROM <table_name>

ROLLBACK