SQL Server - Recorrer tabla sin usar cursores

 
Vista:

Recorrer tabla sin usar cursores

Publicado por Pablo (3 intervenciones) el 21/10/2006 16:49:55
Hola saludos a todos,

Tengo un pequeño problema, mas bien uno grande, resulta que necesito eliminar los duplicados de una tabla ,el problema es que es un poco gordita tiene aprox 21 millones de registros, al hacerle un "distinct" para crear el cursor se consume la memoria.

Si alguien sabe como recorrer los registros de una tabla sin usar cursores le agradeceria mucho.

PD: ya he mirado la ayuda de SQL 2005 y otras fuentes. Espero respuestas concretas y acertadas
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:Recorrer tabla sin usar cursores

Publicado por Isaías (3308 intervenciones) el 26/10/2006 18:34:43
Espero te sirva

-- Saco el total de registros duplicados
SELECT col1, col2, col3, count(*) as Total
INTO #Duplicates
FROM TuTabla
GROUP BY col1, col2, col3

-- Declaro mis variables de uso (dependen del select anterior)
DECLARE @col1 int, col2 int, col3 varchar(10), @Total int

-- Genero mi loop
WHILE EXISTS (SELECT col1 FROM #Duplicates)
BEGIN
SET ROWCOUNT 1
SELECT @col1 = col1, @col2, = col2, @col3 = col3, @Total = Total -1
FROM #Duplicates
SET ROWCOUNT @Total
DELETE TuTabla WHERE col1 = @col1 AND col2 = @col2 AND col3 = @col3
DELETE #Duplicates WHERE col1 = @col1 AND col2 = @col2 AND col3 = @col3
CONTINUE
END

Nota: No he probado la rutina, seria bueno que tuvieras una copia de tu tabla.

SELECT *
INTO RESPALDO_TuTabla
FROM TuTabla
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:Recorrer tabla sin usar cursores

Publicado por Rodolfo Pacheco (1 intervención) el 13/10/2011 21:07:14
Es una rutina, un stored procedure... exactamente que es?

Saludos
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:Recorrer tabla sin usar cursores

Publicado por Carlitos (1 intervención) el 20/07/2010 01:51:35
aqui hay un ejemplo, ami fue bastante util.

http://codigo-errante.blogspot.com/

se que es tarde, = peude ser util para otros.
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:Recorrer tabla sin usar cursores

Publicado por MIGUEL CARO (1 intervención) el 01/10/2011 17:05:25
Nuca es tarde, siempre sera util para alguien

Gracias.

Miguel
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:Recorrer tabla sin usar cursores

Publicado por Cesar (1 intervención) el 27/04/2012 17:46:28
Gracias!, me ayudó mucho!.
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:Recorrer tabla sin usar cursores

Publicado por Chris (1 intervención) el 16/11/2012 15:32:38
Me sirvio mucho, no encontraba en ningún lado algo entendible.
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