Actualiza otra tabla con un trigger solo si se modifica una columna con sql server

desarrollo de software

En algún momento nos vamos a topar con la tarea de crear un Trigger que nos actualice un campo de una tabla2 después de borrar o actualizar un registro de una tabla1.

Aquí les dejo una opción de como podemos hacerlo mediante la creación de un desencadenador (Trigger).

Supongamos que tenemos un sistema o software para llevar el registro de empleados de uno o varios clientes. Tenemos una tabla en la cual registramos todas nuestras empresas clientes (tabla1). Y tenemos en otra tabla (tabla2) a nuestros empleados de cada cliente.

Ahora bien, queremos cambiar el estatus de nuestros empleados solamente si la columna de estatus de nuestra tabla1 sufre alguna modificación.

La solución sería:

[sourcecode language="sql"]

 CREATE TRIGGER OCULTA_EMPLEADOS
 ON EMPRESAS
 AFTER UPDATE
 AS
 BEGIN
 IF UPDATE (ESTATUS) -- sólo si actualiza estatus
 BEGIN
 IF ((SELECT ESTATUS FROM INSERTED) = 4)
 BEGIN
 UPDATE EMPLEADOS
 SET ESTATUS = 99
 where idempresa = (SELECT IDEMPRESA FROM INSERTED)
 END
 END
END
[/sourcecode]

Este es un caso ejemplo de una actualización mediante desencadenadores de un sistema de empleados.

Espero que les sirva.