Asserção/gatilho SQL:como definir um atributo para proibir atualizações decrescentes

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

  •  14-11-2019
  •  | 
  •  

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.

Foi útil?

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
scroll top