none
Trigger que actualice fecha de ese mismo registro RRS feed

  • Pregunta

  • Estoy buscando que en la tabla 'tblncasa' se actualize la 'FechaF' a la fecha actual AL ACTUALIZAR el campo 'NC' DE ESE MISMO REGISTRO.

    Las actualiza todas... solo necesito que actuaize en registro actual y AL MISMO TIEMPO EVITAR QUE SE HAGA RECURRENTE, PUES ESTARIA AFECTANDO EL MISMO REGISTRO Y PROVOCANDO CICLICAMENTE EL DISPARO DEL TIGGER

    CREATE TRIGGER tblncasa__trg_UPDATE
    ON dbo.tblncasa
    AFTER UPDATE
    AS
    UPDATE FECHAF=CONVERT(DATE,GETDATE())
    GO


    Luis C



    martes, 15 de enero de 2019 21:29

Respuestas

  • Hola Luis Carlos H:

    CREATE TABLE tblncasa
    (id     INT, 
     campo1 INT, 
     fechaf DATE
    );
    GO
    INSERT INTO tblncasa
    (id, 
     campo1, 
     fechaf
    )
    VALUES
    (1, 
     1, 
     '20190101'
    ),
    (2, 
     1, 
     '20190101'
    ),
    (3, 
     1, 
     '20190101'
    );
    GO
    CREATE TRIGGER tblncasa_trg_update ON dbo.tblncasa
    AFTER UPDATE
    AS
         UPDATE tblncasa
           SET 
               fechaf = CAST(GETDATE() AS DATE)
         FROM inserted
         WHERE tblncasa.id = inserted.id;
    GO

    Escenario completo

    UPDATE tblncasa
      SET 
          campo1 = 10
    WHERE id = 2;
    GO
    

    Solución

    SELECT *
    FROM tblncasa;

    Salida

    Utilizar los triggers para la modificación de registros te puede generar problemas, del tipo, que pasa si tu trigger, no funciona. Como lo sabes.

    Que pasa si te produce un bloqueo registros.....Existen muchas causas que pueden hacer que los triggers no sean una buena opción, ya que se hacen solos, pero no llaman a nadie por teléfono cuando no funcionan.

    Espero te sirva la ayuda.

    • Marcado como respuesta Luis Carlos H martes, 15 de enero de 2019 23:04
    martes, 15 de enero de 2019 22:09

Todas las respuestas

  • ¿Porque colocar las reglas de negocio en un Trigger?, Esto debería ocurrir en el procedimiento que actualiza la tabla en cuestión.

    IIslas Master Consultant SQL Server

    martes, 15 de enero de 2019 21:35
  • Hola Luis Carlos H:

    CREATE TABLE tblncasa
    (id     INT, 
     campo1 INT, 
     fechaf DATE
    );
    GO
    INSERT INTO tblncasa
    (id, 
     campo1, 
     fechaf
    )
    VALUES
    (1, 
     1, 
     '20190101'
    ),
    (2, 
     1, 
     '20190101'
    ),
    (3, 
     1, 
     '20190101'
    );
    GO
    CREATE TRIGGER tblncasa_trg_update ON dbo.tblncasa
    AFTER UPDATE
    AS
         UPDATE tblncasa
           SET 
               fechaf = CAST(GETDATE() AS DATE)
         FROM inserted
         WHERE tblncasa.id = inserted.id;
    GO

    Escenario completo

    UPDATE tblncasa
      SET 
          campo1 = 10
    WHERE id = 2;
    GO
    

    Solución

    SELECT *
    FROM tblncasa;

    Salida

    Utilizar los triggers para la modificación de registros te puede generar problemas, del tipo, que pasa si tu trigger, no funciona. Como lo sabes.

    Que pasa si te produce un bloqueo registros.....Existen muchas causas que pueden hacer que los triggers no sean una buena opción, ya que se hacen solos, pero no llaman a nadie por teléfono cuando no funcionan.

    Espero te sirva la ayuda.

    • Marcado como respuesta Luis Carlos H martes, 15 de enero de 2019 23:04
    martes, 15 de enero de 2019 22:09
  • Gracias! 

    Luis C

    martes, 15 de enero de 2019 23:04