SQL - Delete

 
Vista:

Delete

Publicado por Jhon Alexander (18 intervenciones) el 12/12/2005 17:10:43
Hola, tengo 100 registros los cuales están duplicados, me explico tengo la
cedula 986565 repetida; como puedo eliminar uno de los dos sabiendo que la
cedula 986565 tiene los la información idéntica al primero.
Mejor dicho no encuentro un campo distinto por el cual pueda hacer el DELETE.
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:Delete

Publicado por Isaías (5072 intervenciones) el 12/12/2005 19:25:35
Revisa este script, si tienes dudas me dices:

DECLARE @col1 SMALLINT, @col2 INT, @dupcnt INT
declare dups cursor for
SELECT MyCol1, MyCol2, (count(*) - 1) as Duplicates
FROM MyTabla
GROUP BY MyCol1, Mycol2
HAVING count(*) > 1 order by MyCol1, MyCol2

-- Abro mi cursor
OPEN dups
-- Entro al ciclo
WHILE(1=1)
BEGIN
FETCH NEXT FROM dups INTO @col1, @col2, @dupcnt
IF (@@fetch_status < 0)
BREAK -- Rompo el Ciclo
SET rowcount @dupcnt
DELETE MyTabla WHERE MyCol1 = @col1 and MyCol2 = @col2
END
-- Quito mi cursor de la memoria
DEALLOCATE dups
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