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

Borrado periódico de datos

Estas en el tema de Borrado periódico de datos en el foro de SQL Server en Foros del Web. Muy buenas a todos, Tengo una base de datos en SQL Server 2000 y me gustaría borrar con una periodicidad de 2 semanas datos antiguos ...
  #1 (permalink)  
Antiguo 04/04/2011, 12:37
 
Fecha de Ingreso: mayo-2009
Mensajes: 114
Antigüedad: 15 años, 6 meses
Puntos: 1
Borrado periódico de datos

Muy buenas a todos,

Tengo una base de datos en SQL Server 2000 y me gustaría borrar con una periodicidad de 2 semanas datos antiguos de una base de datos, hacer un DELETE * FROM Table WHERE FechaHora< ....
Supongo que se puede hacer con procedimientos almacenados, ¿alguna sugerencia?

Gracias por anticipado.
  #2 (permalink)  
Antiguo 04/04/2011, 12: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: Borrado periódico de datos

Si, de ser muchos registros (no nos comentas en aproximado cuantos seran), debes hacer un borrado por grupos de registros mediante un WHILE, por aquello del ROLLBACK y el manejo del archivo de transacciones.
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 04/04/2011, 14:11
 
Fecha de Ingreso: mayo-2009
Mensajes: 114
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Borrado periódico de datos

Gracias.
Podemos estar hablando de 200 o 300 mil registros.
¿Podéis poner algún ejemplo de procedimiento almacenado?
Reitero el agradecimiento.
  #4 (permalink)  
Antiguo 04/04/2011, 15:01
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: Borrado periódico de datos

Analiza el codigo, borra de 100 en 100, hasta completar el ciclo del WHILE

CREATE PROCEDURE usp_Elimina_Registros
@Registros int = 100
AS
BEGIN
WHILE EXISTS(SELECT * FROM tutabla WHERE tucolumnaFecha <= dateadd(dd, -30, GETDATE()))
BEGIN
SET ROWCOUNT = @Registros
DELETE tutabla WHERE tucolumnaFecha <= dateadd(dd, -30, GETDATE())
CONTINUE
END
END
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 07/04/2011, 06:38
 
Fecha de Ingreso: mayo-2009
Mensajes: 114
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Borrado periódico de datos

Gracias, lo probaré y digo algo.

Etiquetas: borrado
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 15:46.