sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo eliminar registros duplicados en una tabla?

No da el nombre de su tabla, pero creo que algo como esto debería funcionar. Solo deja el registro que tiene la identificación más baja. ¡Es posible que desee probar con ROLLBACK primero!

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