[firebase-br] SP teórica para habilitar/desabilitar todos os triggers de um banco

Evandro's mailing lists (Please, don't send personal messages to this address) listasjr em gmail.com
Ter Maio 19 17:18:26 -03 2009


 Caros senhores

É uma pena que não dá para executar DDL nas SPs do firebird senão poderíamos
ter essa SP para desabilitar todos os triggers do BD.

O único problema é que o FB não permite executar essa linha:

alter TRIGGER :tgrName INACTIVE;
Acho que vou mesmo é fazer um micro programa em C# que faça isso. Ví que
essa funcionalidade já está no FB 2.5 mas não quero esperar até lá.
Abraços
-Jr


SET TERM ^ ;
CREATE PROCEDURE SP_DATABASE_TRIGGERS_DEACTVATE
as
declare variable tgrName char(100);
declare variable tgrCount int;
declare variable i int;
begin
SELECT count(RDB$TRIGGER_NAME) FROM RDB$TRIGGERS WHERE RDB$SYSTEM_FLAG=0
into :tgrCount;

WHILE (i <=tgrCount) DO
BEGIN
    SELECT
            RDB$TRIGGER_NAME[:i]
    FROM RDB$TRIGGERS
    WHERE RDB$SYSTEM_FLAG=0
    INTO :tgrName;
    i=i +1;
    alter TRIGGER :tgrName INACTIVE;
end
end^
SET TERM ; ^



Mais detalhes sobre a lista de discussão lista