SQL Server - Eliminar duplicados no tengo RowId

   
Vista:

Eliminar duplicados no tengo RowId

Publicado por kinetic_brain (67 intervenciones) el 09/08/2010 22:47:41
Maestros

por favor como realizo esa operación.

necesito identificar y posteriormente eliminar los registros duplicados, la tabla no tiene RowId pero si el campo NUM_RCL es unico.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Eliminar duplicados no tengo RowId

Publicado por kinetic_brain (67 intervenciones) el 09/08/2010 23:12:22
No puedo hacer modificaciones en la tabla como crear un campo,solo puedo eliminar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

RE:Eliminar duplicados no tengo RowId

Publicado por Isaias (3181 intervenciones) el 10/08/2010 00:18:50
-- primero saco una copia de la tabla en cuestion
SELECT * INTO TuTabla_bak FROM TuTabla

-- Despues creo un cursor con el numero de registros duplicados
DECLARE @numdoc nvarchar(18)
DECLARE @reg_duplicados INT

DECLARE CURSOR_DUPLICADOS CURSOR FOR
SELECT numdoc, COUNT(numdoc)
FROM tutabla
GROUP BY numdoc
HAVING (COUNT(numdoc) > 1)


--Recorre el cursor
OPEN CURSOR_DUPLICADOS
FETCH NEXT FROM CURSOR_DUPLICADOS
INTO @numdoc, @reg_duplicados

WHILE @@FETCH_STATUS = 0
BEGIN
SET ROWCOUNT = (@reg_duplicados - 1)
DELETE tutabla where numdoc = @numdoc
FETCH NEXT FROM CURSOR_DUPLICADOS
INTO @numdoc, @reg_duplicados
END
CLOSE CURSOR_DUPLICADOS
DEALLOCATE CURSOR_DUPLICADOS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Eliminar duplicados no tengo RowId

Publicado por kinetic_brain (67 intervenciones) el 10/08/2010 18:30:00
SET ROWCOUNT a que campo se refiere??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

RE:Eliminar duplicados no tengo RowId

Publicado por Isaias (3181 intervenciones) el 10/08/2010 20:33:50
¿Ya buscaste en tu ayuda en linea ROWCOUNT?

Es una variable de sistema que indica CUANTOS REGISTROS DEBERA AFECTAR, en una select, delete, insert, etc.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Eliminar duplicados no tengo RowId

Publicado por jams (75 intervenciones) el 18/08/2010 23:08:28
conoces la funcion rank??

creo que tal vez eso te pudiera servir va un ejemplo

declare @AlphaList table (AlphaKey char);

insert into @AlphaList(AlphaKey) values ('A');
insert into @AlphaList(AlphaKey) values ('A');
insert into @AlphaList(AlphaKey) values ('B');
insert into @AlphaList(AlphaKey) values ('B');
insert into @AlphaList(AlphaKey) values ('C');
insert into @AlphaList(AlphaKey) values ('D');
insert into @AlphaList(AlphaKey) values ('D');
insert into @AlphaList(AlphaKey) values ('E');

select * from (
select
RANK() over (order by AlphaKey) as Rank
, ROW_NUMBER() over (order by AlphaKey) as RowNumber
, AlphaKey
from @AlphaList)x
where rank=rownumber

NOTA: funciona en sql server 2005


Saludos

dejame saber si te funciona
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar