SQL Assertion / Trigger: come impostare un attributo per proibire aggiornamenti decrescenti

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

  •  14-11-2019
  •  | 
  •  

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.

È stato utile?

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
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top