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

borrar registros dentro un tiempo determinado

Estas en el tema de borrar registros dentro un tiempo determinado en el foro de SQL Server en Foros del Web. hola quisiera saber como borrar un registro despues de un cierto tiempo. lo que estoy haciendo es que cuando un usuario necesita cambiar la contraseña, ...
  #1 (permalink)  
Antiguo 12/08/2011, 08:47
Avatar de shake2427  
Fecha de Ingreso: julio-2011
Mensajes: 116
Antigüedad: 12 años, 9 meses
Puntos: 3
borrar registros dentro un tiempo determinado

hola

quisiera saber como borrar un registro despues de un cierto tiempo.

lo que estoy haciendo es que cuando un usuario necesita cambiar la contraseña,
se le genera un codigo,con el cual puede cambiar la contraseña,si el usuario la cambia se borra el codigo.

pero si pasa el caso de que pase 2 dias y no la ha cambiado,quisiera que se borre ese codigo para que no se pueda usar.


gracias.
  #2 (permalink)  
Antiguo 12/08/2011, 08:55
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: borrar registros dentro un tiempo determinado

Si tienes fecha del ULTIMO MOVIMIENTO o cambio de codigo, lo puedes hacer, basandote en esa fecha, haces un PROCEDIMIENTO que se ejecute TODOS LOS DIAS y aquellos que tengan vigencia de mas de "N" numero de dias de antiguedad, lo borras.
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 12/08/2011, 09:01
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: borrar registros dentro un tiempo determinado

Hola shake2427:

Hace tiempo tuve la necesidad de hacer algo parecido aunque sin borrar físicamente los registros de la BD. Lo que se hizo entonces fue agregar un campo "caducidad" de tipo datetime a la tabla que contenía el usuario y contraseñas para ingresar al sistema. Cuando el usuario olvidaba su contraseña y pedía que se le restaurara se generaba una contraseña aleatoria y se le enviaba por correo, pero esta contraseña sólo sería valida en las siguientes 24 horas. Cuando el usuario cambiaba su contraseña simplemente se cambiaba la fecha de caducidad poniendo 2099-01-01, es decir una fecha muy lejana a la actual.

Adicionalmente en el módulo de acceso a la aplicación se tuvo que agregar una condición para que verificara siempre que la fecha de caducidad de la cuenta no fuera menor a la fecha y hora actual, de esta manera, si el usuario no había cambiado su contraseña y ya habían transcurrido las 24 horas simplemente se le negaba el acceso y el usuario tendía que solicitar nuevamente restaurar al contraseña.

En tu caso, si necesitas forzosamente eliminar el registro tendrías que implementar un job para que revisara todas aquellas cuentas cuya fecha de caducidad ya expiró y ejecutarlo por ejemplo cada hora o una vez al día, según tu lógica de negocio.

Saludos
Leo.
  #4 (permalink)  
Antiguo 12/08/2011, 09:11
Avatar de shake2427  
Fecha de Ingreso: julio-2011
Mensajes: 116
Antigüedad: 12 años, 9 meses
Puntos: 3
Respuesta: borrar registros dentro un tiempo determinado

Cita:
Iniciado por leonardo_josue Ver Mensaje
Hola shake2427:

Hace tiempo tuve la necesidad de hacer algo parecido aunque sin borrar físicamente los registros de la BD. Lo que se hizo entonces fue agregar un campo "caducidad" de tipo datetime a la tabla que contenía el usuario y contraseñas para ingresar al sistema. Cuando el usuario olvidaba su contraseña y pedía que se le restaurara se generaba una contraseña aleatoria y se le enviaba por correo, pero esta contraseña sólo sería valida en las siguientes 24 horas. Cuando el usuario cambiaba su contraseña simplemente se cambiaba la fecha de caducidad poniendo 2099-01-01, es decir una fecha muy lejana a la actual.

Adicionalmente en el módulo de acceso a la aplicación se tuvo que agregar una condición para que verificara siempre que la fecha de caducidad de la cuenta no fuera menor a la fecha y hora actual, de esta manera, si el usuario no había cambiado su contraseña y ya habían transcurrido las 24 horas simplemente se le negaba el acceso y el usuario tendía que solicitar nuevamente restaurar al contraseña.

En tu caso, si necesitas forzosamente eliminar el registro tendrías que implementar un job para que revisara todas aquellas cuentas cuya fecha de caducidad ya expiró y ejecutarlo por ejemplo cada hora o una vez al día, según tu lógica de negocio.

Saludos
Leo.

en mi caso seria como ponerle una fecha en la tabla donde esta el codigo y el id del usuario.y luego comprobar si la fecha es menor a un dia que se borre el registro.
dime si es asi??

o del job me podrias explicar un poco de eso?

gracias
  #5 (permalink)  
Antiguo 12/08/2011, 09:19
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: borrar registros dentro un tiempo determinado

Jobs= san google

http://msdn.microsoft.com/en-us/library/ms187910.aspx

http://www.databasedesign-resource.c...rver-jobs.html

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #6 (permalink)  
Antiguo 12/08/2011, 09:32
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: borrar registros dentro un tiempo determinado

Cita:
Jobs= san google
Más claro ni el agua.

Saludos
Leo.
  #7 (permalink)  
Antiguo 12/08/2011, 11:15
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: borrar registros dentro un tiempo determinado

¿Que dije yo? "Si tienes fecha del ULTIMO MOVIMIENTO o cambio de codigo", porque entonces pregunta "en mi caso seria como ponerle una fecha en la tabla donde esta el codigo"
__________________
MCTS Isaias Islas

Etiquetas: borrar, determinado, registros
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 08:58.