Aserción / disparador de SQL: Cómo configurar un atributo para prohibir las actualizaciones Disminuyendo

StackOverflow https://stackoverflow.com/questions/9008038

  •  14-11-2019
  •  | 
  •  

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.

¿Fue útil?

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top