Buscar este blog

jueves, 19 de mayo de 2011

Borrar Registros Duplicados (dejando sólo los registros válidos)

Buen dia amigos,

Les traigo un script utilísimo si han tenido la mala suerte de, involuntariamente, duplicar, triplicar, cuadruplicar etc registros de una tabla...
Con la ayuda de mi script en unas pocas línes de código podrán volver la tabla a su estado anterior, es decir, podrá eliminar sólo los registros duplicados, conservando los registros válidos. Manos a la obra..

--------------------------------------------------------------
-- Detalle: Este script permite borrar registros duplicados --
-- Autor: Gustavo Herrera --
--------------------------------------------------------------

-- 1) Agrego un campo "id" identity (si no lo tiene)
Alter Table TablaX
add id integer identity

-- 2) Borro registros duplicados
Delete from TablaX
where Id > (Select min(Id) From TablaX as b Where TablaX.Idmsg = b.Idmsg)

-- 3) Dropeo el campo creado para correr el paso 2
Alter Table TablaX
Drop Column id