Hoje um amigo me pediu umas dicas para recuperar um banco de dados, e no final ele precisava desativar todas as Triggers para transferir os dados para um novo banco, pesquisamos um pouco na internet e conseguimos montar os códigos:

Para desativar

SELECT 'ALTER TRIGGER ' || Trim(RDB$TRIGGER_NAME) || ' INACTIVE;'
  FROM RDB$TRIGGERS
 WHERE RDB$TRIGGER_SOURCE IS NOT NULL

Para ativar

SELECT 'ALTER TRIGGER ' || Trim(RDB$TRIGGER_NAME) || ' ACTIVE;'
  FROM RDB$TRIGGERS
 WHERE RDB$TRIGGER_SOURCE IS NOT NULL

Este código, vai gerar as instruções SQL para desativar/ativar todas as Triggers de todas as Tabelas.

Atenção
Estou usando a função Trim, disponível no Firebird 2.1 e acho que também no 2.0, sei que não tem no Firebird 1.5.x ou anteriores, mas não tem problema, se você uma versão que não suporta o Trim, basta remover que o código vai funcionar também, o Trim é apenas para melhorar a estética do resultado.

Bookmark and Share: