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

Preguntas similare

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


Respuesta Responder a este mensaje
#2 Conan el Cimerio |-(
15/03/2006 - 03:39 | Informe spam
En mi caso uso un cursor

obtengo los que esten duplicados, con un group by

y guardo los valores en variables, elimino a todos y luego los vuelvo a
insertar, esto para no modificar la tabla
Respuesta Responder a este mensaje
#3 Alfredo Novoa
15/03/2006 - 11:54 | Informe spam
On Mon, 13 Mar 2006 16:58:27 -0800, Alejandro Mesa
wrote:

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



Pero si tiene una clave primaria entonces ¿Como puede tener registros
duplicados? :-D


Saludos
Alfredo
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida