Eliminar registros duplicados

20/07/2006 - 16:05 por Joel Medina Osis | Informe spam
como podria hacer para depurar una tabla y eliminar registros duplicados
segun cierto criterio por ejemoplo si en la tabla se repite el nombre de
usuario, apellido y codigo solo conservar uno y eliminar el resto de
registros duplicados, semejante a hacer un select distinct

Preguntas similare

Leer las respuestas

#1 Maxi
20/07/2006 - 16:14 | Informe spam
Hola, revisa este link

http://www.swynk.com/friends/boyle/...licate.asp


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org
Speaker INETA
Speaker Culminis


"Joel Medina Osis" escribió en el mensaje
news:Oe$
como podria hacer para depurar una tabla y eliminar registros duplicados
segun cierto criterio por ejemoplo si en la tabla se repite el nombre de
usuario, apellido y codigo solo conservar uno y eliminar el resto de
registros duplicados, semejante a hacer un select distinct


Respuesta Responder a este mensaje
#2 Alejandro Mesa
20/07/2006 - 16:48 | Informe spam
Trata:

alter table dbo.t1
add sk int not null identity(1, 1)
go

alter table dbo.t1
add constraint uq_t1_sk unique(sk)
go

alter table dbo.t1
add crc as check_sum(nombre, apellido, codigo)
go

delete dbo.t1
where exists (
select *
from dbo.t1 as t2
where t2.crc = dbo.t1.crc and t2.sk > dbo.t1.sk
)
go

alter table dbo.t1
drop column crc
go

alter table dbo.t1
drop constraint uq_t1_sk
go

alter table dbo.t1
drop column sk
go

alter table dbo.t1
add constraint uq_t1_nombre_apellido_codigo unique(nombre,apellido,codigo)
go


AMB

"Joel Medina Osis" wrote:

como podria hacer para depurar una tabla y eliminar registros duplicados
segun cierto criterio por ejemoplo si en la tabla se repite el nombre de
usuario, apellido y codigo solo conservar uno y eliminar el resto de
registros duplicados, semejante a hacer un select distinct



Respuesta Responder a este mensaje
#3 Alejandro Mesa
20/07/2006 - 17:00 | Informe spam
Correccion,

alter table dbo.t1
add constraint uq_t1_nombre_apellido_codigo unique(nombre,apellido,codigo)
go





AMB

"Alejandro Mesa" wrote:

Trata:

alter table dbo.t1
add sk int not null identity(1, 1)
go

alter table dbo.t1
add constraint uq_t1_sk unique(sk)
go

alter table dbo.t1
add crc as check_sum(nombre, apellido, codigo)
go

delete dbo.t1
where exists (
select *
from dbo.t1 as t2
where t2.crc = dbo.t1.crc and t2.sk > dbo.t1.sk
)
go

alter table dbo.t1
drop column crc
go

alter table dbo.t1
drop constraint uq_t1_sk
go

alter table dbo.t1
drop column sk
go

alter table dbo.t1
add constraint uq_t1_nombre_apellido_codigo unique(nombre,apellido,codigo)
go


AMB

"Joel Medina Osis" wrote:

> como podria hacer para depurar una tabla y eliminar registros duplicados
> segun cierto criterio por ejemoplo si en la tabla se repite el nombre de
> usuario, apellido y codigo solo conservar uno y eliminar el resto de
> registros duplicados, semejante a hacer un select distinct
>
>
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida