como eliminar registros duplicados en una tabla

14/03/2006 - 01:09 por Joshua | Informe spam
Gracias por sus comentarios. Tengo un codigo como el siguiente pero no me
funciona, algun otro tip que me pudan dar. De antemano, Muchisimas gracias.


SELECT T.*
FROM
MyTable AS T
JOIN
(
SELECT
keycol1,
keycol2
FROM
MyTable
GROUP BY
keycol1,
keycol2
HAVING
COUNT (*) > 1
) AS D ON D.keycol1 = T.keycol1
AND D.keycol2 = T.keycol2
 

Leer las respuestas

#1 Alejandro Mesa
14/03/2006 - 01:58 | Informe spam
Joshua,

Suponiendo que tu tabla tiene una clave primaria, entonces podemos usar:

delete t1
where exists(
select *
from t1 as t2
where t2.c1 = t1.c1 and t2.c2 = t1.c2 and t2.pk < t1.pk)

Si la tabla no tiene clave primaria, entonces puedes laterar la tabla y
agregar una columna con propiedad identity y usar esta como supuesta clave
primaria.

alter table t1
add pk int not null identity constraint u_t1_pk unique
go

delete t1
where exists(
select *
from t1 as t2
where t2.c1 = t1.c1 and t2.c2 = t1.c2 and t2.pk < t1.pk)
go

alter table t1
drop constraint u_t1_pk
go

alter table t1
drop column pk
go

El codigo no ha sido probado por no tener instalado sql server en esta
maquina.


AMB

"Joshua" wrote:

Gracias por sus comentarios. Tengo un codigo como el siguiente pero no me
funciona, algun otro tip que me pudan dar. De antemano, Muchisimas gracias.


SELECT T.*
FROM
MyTable AS T
JOIN
(
SELECT
keycol1,
keycol2
FROM
MyTable
GROUP BY
keycol1,
keycol2
HAVING
COUNT (*) > 1
) AS D ON D.keycol1 = T.keycol1
AND D.keycol2 = T.keycol2


Preguntas similares