SQL Assertion / Trigger: come impostare un attributo per proibire aggiornamenti decrescenti
Domanda
Ho una tabella chiamata Persona, uno degli attributi è anni_working.
Ho bisogno di trovare un modo per limitare gli anni_working dall'essere diminuiti, così Un trigger / asserzione (non è sicuro di cosa usare qui) consentirà solo aumenti sugli aggiornamenti.
Soluzione
Il codice qui sotto ritornerà solo tutti i valori aggiornati years_worked
che non cadono nella tua restrizione a quello che erano prima dell'aggiornamento.Questo è per SQL Server , non posso parlare per altri 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