Asserção/gatilho SQL:como definir um atributo para proibir atualizações decrescentes
Pergunta
Tenho uma tabela chamada pessoa, um dos atributos é anos_trabalhado.
Preciso encontrar uma maneira de restringir o ano de trabalho de ser diminuído, para que um gatilho/afirmação (não tenho certeza do que usar aqui) permitirá apenas aumentos nas atualizações.
Solução
O código abaixo irá apenas reverter tudo years_worked
valores atualizados que não se enquadram na sua restrição, voltando ao que eram antes da atualização.Isso é para servidor SQL, não posso falar por outros 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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow