Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come rimuovere i record duplicati in una tabella?

Non dai il nome del tuo tavolo ma penso che qualcosa del genere dovrebbe funzionare. Sto solo lasciando il record che sembra avere l'ID più basso. Potresti provare prima con il ROLLBACK!

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