Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Eliminar duplicados de tabla sin ID

Estas en el tema de Eliminar duplicados de tabla sin ID en el foro de SQL Server en Foros del Web. Que tal gente, estoy con un problemita que no puedo resolver. qye Tengo una tabla que no tiene ningun ID unico, suongamos que es : ...
  #1 (permalink)  
Antiguo 16/12/2008, 13:53
 
Fecha de Ingreso: junio-2004
Ubicación: Argentina
Mensajes: 150
Antigüedad: 20 años, 5 meses
Puntos: 2
Eliminar duplicados de tabla sin ID

Que tal gente, estoy con un problemita que no puedo resolver.
qye
Tengo una tabla que no tiene ningun ID unico, suongamos que es :

Desde
Hasta
Número

(en realidad son muchos nada más, campos pero pongo 3).

Estoy buscando algun stored procedure que pueda ver y elimiar los registros duplicados , la mayoria que encontre son duplicando la tabla, pero debido a la cantidad de registros tardaria demaciado tiempo (tiene mas de 1millon).

Espero que me puedan ayudar.

Desde ya gracias.

pd1: Busque usando el search pero no encontre nada util.
pd2: Uso SQL Server 2000.

Saludos.
  #2 (permalink)  
Antiguo 16/12/2008, 13:58
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 11 meses
Puntos: 38
Respuesta: Eliminar duplicados de tabla sin ID

Algo rapido seria sacar los registros unicos en una temporal,
luego eliminar todos los repetidos de la tabla original y
finalmente insertar los registros unicos desde la tabla temporal

Algo como

Código:
Create #MiTable (MisCampos)

Insert into #MiTable (MisCampos)
Select MisCampos
From   MiTablaOriginal
Group by 
       MisCamposLlave (los que no se deben repetir)
Having count(1) > 1


Delete from MitablaOriginal M
Inner join 
      #MiTable T
On  M.MisCamposLlave = T.MisCamposLlave


Insert into MiTablaOriginal
Select MisCampos
From  #MiTable
Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #3 (permalink)  
Antiguo 16/12/2008, 14:59
 
Fecha de Ingreso: junio-2004
Ubicación: Argentina
Mensajes: 150
Antigüedad: 20 años, 5 meses
Puntos: 2
Respuesta: Eliminar duplicados de tabla sin ID

Gracias por la rapida respuesta, pero lo que no queria es duplicar la tabla, igualmente si no encuentro alguna otra manera, voy a tener que hacerlo.

Gracias!!
  #4 (permalink)  
Antiguo 16/12/2008, 15:40
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 11 meses
Puntos: 38
Respuesta: Eliminar duplicados de tabla sin ID

La otra es que le agregues un campo identity, elimines los repetidos y elimines la columna...

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #5 (permalink)  
Antiguo 16/12/2008, 20:56
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Eliminar duplicados de tabla sin ID

Vi esto en alguno de los foro que frecuento:

Tengo una tabla, con estos campos (hay mas campos) y registros

campo1 campo2
x 1
d 5
e 3
x 1
x 1
d 5

quisiera que me quede:
campo1 campo2
x 1
d 5
e 3

La respuesta es: (t1, se asume que es una copia de la tabla original)

alter tabla t1
add c1 int not null identity(1, 1)

create unique nonclustered ix_u_nc_t1_c1 on t1(c1 asc)

delete t1
where exists(
select *
from t1 as a
where a.campo1 = t1.campo1 and a.campo2 = t1.campo2 and a.c1 < t1.c1
)

alter table t1
drop column c1
go

Se recomienda hacer un respaldo FULL de su base, antes de aplicar la solucion.
  #6 (permalink)  
Antiguo 17/12/2008, 06:24
 
Fecha de Ingreso: junio-2004
Ubicación: Argentina
Mensajes: 150
Antigüedad: 20 años, 5 meses
Puntos: 2
Respuesta: Eliminar duplicados de tabla sin ID

Cita:
Iniciado por Andres95 Ver Mensaje
La otra es que le agregues un campo identity, elimines los repetidos y elimines la columna...

Saludos!
¿Como seria esto?, ¿te referis a que agrege por ejemplo 1 campo ID ?


Gracias!
  #7 (permalink)  
Antiguo 17/12/2008, 07:13
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 11 meses
Puntos: 38
Respuesta: Eliminar duplicados de tabla sin ID

asi es...

un ejemplo de ello es el code del companero iislas...

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #8 (permalink)  
Antiguo 17/12/2008, 07:16
 
Fecha de Ingreso: junio-2004
Ubicación: Argentina
Mensajes: 150
Antigüedad: 20 años, 5 meses
Puntos: 2
Respuesta: Eliminar duplicados de tabla sin ID

Bueno, termine copiando la tabla y haciendo:

DELETE FROM Llamados_New WHERE Desde in (SELECT Desde FROM Llamados_New GROUP By Desde Having Count(Desde > 1)

Ademas tambien realize un control manual agregando un campo ID con el alter table de arriba.

Muchas gracias a ambos por las respuestas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:44.