[firebase-br] Desativar todas as trigger

Gladiston Santana gladiston.santana em gmail.com
Quinta Outubro 27 10:37:50 -03 2022


Se for para uma manutenção pontual, o ibexpert tem uma opção de menu que
permite desativar/ativar algumas ou todas.
Se precisará sempre de intervenções, crie uma variavel de contexto global
chamada CAN_TRIGGER(ou o nome que preferir) com valor falso, e no cabeçalho
de todas as triggers faça a verificação dessa variável para decidir dentro
da trigger o que deverá ser executado ou não, pode até usar um exit logo no
inicio dela ou suspender apenas as linhas com update/insert/delete.
Um DBA precisa prever que manutenções podem acontecer sem a contenção do
programa, o programa pode até estar bugado ou as alterações ocorreram do
excel então as triggers precisam trabalhar com essa hipótese senão dá caca.
Quando era novato fiz no SQL Server um update de um campo para status='A'
para todas os registros na tabela e na minha cabeça funcionaria, mais tarde
notei que eu deveria ter previsto na trigger que ao invés dela trabalhar
com a situação de old.status<>new.status, ela trabalhava que se o status
fosse "A'' então faria uma certa operação e fez a operação para todos,
incluindo os que não mudaram de status. Sim, fiz caca e admito, mas eu era
novato e aprendi a lição. A moral é que programação com triggers precisa
ser cauteloso e nos cursos que tem por ai, não te ensinam isso e olhe que
naquele momento eu já tinha o certificado microsoft.

inte+

Em qua., 26 de out. de 2022 às 10:53, Adriano Toledo via lista <
lista em firebase.com.br> escreveu:

> Boa tarde a todos.
>
> Como faço para desativar todas as triggers do banco de dados Firebird 3.0?
>
> Desde já obrigado
>
> M/Cumprimentos
> Adriano Toledo


Mais detalhes sobre a lista de discussão lista