none
Trigger para borrado de registros RRS feed

  • Pregunta

  • Hola,
    Quisiera saber si me pueden ayudar como crear un trigger en SQL Server para borrar un registro de una tabla despues de un periodo de tiempo. En esta tabla guardo el nombre de usuario, la contraseña,  la fecha y hora con la siguiente estructura:

    CREATE TABLE t_usuarios
    (
    u_nombre varchar(50) PRIMARY KEY,
    u_password varchar(20),
    t_inicio datetime(), 
    );

    Al momento de que el usuario ingresa, el campo t_inicio se guarda la fecha y hora del sistema now().

    Quisiera que despues de trancurridos 20 minutos despues de t_ingreso, se elimine ese registro de la tabla t_usuarios

    Ojalá pudieran ayudarme ya que no sé como hacerlo

    Saludos

    jueves, 12 de enero de 2017 17:20

Respuestas

  • Hola
    Muchas gracias a todos por sus respuestas 
    Logre que funcionara el borrado
    Estaba usando sql server 2005 el cual me impedía iniciar el servicio sql server agent.
    Tuve que migrar a sql server 2008 y cree un job para realizar dicha acción

    Se agradece la ayuda a todos, ya que nunca había trabajado con este servicio

    Saludos

    viernes, 13 de enero de 2017 14:07

Todas las respuestas

  • No creo que esto pueda hacerse mediante el uso de un trigger ya que estos se disparan cuando se ejecuta una operacion INS/DEL/UPD sobre la tabla en cuestion.

    Debera usarse una tarea que se ejecute cada determinado tiempo para eliminar registros creados mas alla de los 20 minutos despues de su creacion.


    AMB

    Some guidelines for posting questions...

    AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas


    jueves, 12 de enero de 2017 17:28
  • COMO LO DIJO #Hunchback mejor genera un job que se ejecute cada minuto o segun tu requerimiento y que se ejecute algo asi como esto para eliminar los registros que ya tengo 20 min después de haberse creado.

    DELETE t_usuarios WHERE DATEDIFF(MINUTE,t_inicio,GETDATE()) > 20

    SALUDOS!


    Sánchez F., Erik

    jueves, 12 de enero de 2017 18:12
  • Lo hare como ustedes dicen 

    Muchas gracias por sus respuestas

    Saludos

    jueves, 12 de enero de 2017 18:34
  • Estuve investigando sobre los "jobs" y me pide un servicio llamado "SQL Server Agent" pero en el directorio de la conexion de la base de datos, no se encuentra dicha opcion. 
    ¿Como hago para levantar este servicio? o ¿que tengo q hacer para que me aparezca?

    Ojalá me puedan responder 

    Saludos
    jueves, 12 de enero de 2017 19:16
  • Hola maxkohler,

    Gracias por visitar los foros. Podría serte de utilidad seguir el siguiente proceso:

    >Inicio

    >SQL Server Configuration Manager

    > SQL Server Services

    >Selecciona el servicio Server Agent

    >Clic derecho start

    Nota: Si no se encuentra dentro del Configuratión Manager puede ser que la versión con la que cuentes no soporte este servicio, por lo cual resultaría de gran utilidad nos pudieras indicar la versión de SQL con la que estas trabajando

    Saludos

    Joyce

    __________________________________________________________________________________________
    Por favor, recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, hace que sea más fácil para los otros visitantes encontrar la solución  más tarde. Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft. Este contenido es proporcionado "tal  cual" y no implica ninguna responsabilidad de parte de Microsoft.

    viernes, 13 de enero de 2017 0:05
    Moderador
  • Hola
    Muchas gracias a todos por sus respuestas 
    Logre que funcionara el borrado
    Estaba usando sql server 2005 el cual me impedía iniciar el servicio sql server agent.
    Tuve que migrar a sql server 2008 y cree un job para realizar dicha acción

    Se agradece la ayuda a todos, ya que nunca había trabajado con este servicio

    Saludos

    viernes, 13 de enero de 2017 14:07