Aserción / disparador de SQL: Cómo configurar un atributo para prohibir las actualizaciones Disminuyendo
Pregunta
Tengo una tabla llamada persona, uno de los atributos es años.
Necesito encontrar una manera de restringir los años de haber disminuido de ser disminuido, de modo que Un activador / aserción (no estoy seguro de qué usar aquí) solo permitirá aumentos en las actualizaciones.
Solución
El siguiente código simplemente revertirá todos los valores actualizados de years_worked
que no se conviertan en su restricción a lo que estaban antes de la actualización.Esto es para SQL Server , no puedo hablar por otros RDBMS '.
create trigger RestrictYearsWorked
on person
after update
as
update person
set years_worked = d.years_worked
from person p
inner join deleted d
on p.yourIdCol = d.yourIdCol
where p.years_worked < d.years_worked
go