Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como remover registros duplicados em uma tabela?


Você não dá o nome da sua tabela, mas acho que algo assim deve funcionar. Apenas deixando o registro que tem o menor ID. Você pode querer testar com o ROLLBACK primeiro!
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