It is only possible to call ALTER TRIGGER ...
from a PSQL statement, which is not always easy to initialise. Also, it does not look nice to write dozens of lines for each trigger, both:
if (:act = 1) ALTER TRIGGER ... ACTIVE;
else ALTER TRIGGER ... INACTIVE;
if (:act = 1) ...
It would be much better, if I could simply call: (with 0/1 as parameter)
update RDB$TRIGGERS set RDB$TRIGGER_INACTIVE=1
where RDB$TRIGGER_NAME in ('TRG_AUI_DETAILS','TRG_AU_INV','...');
But is this safe to do in Firebird 2.5? Or does the official ACTIVE / INACTIVATE command do anything else in the background? (I found the idea: here)
Addendum, I settled on using:
EXECUTE BLOCK
...
FOR SELECT ...
S = 'ALTER TRIGGER ' || :trigger_name ||' ACTIVE';
execute statement :S;
So basically, creating a dynamic stings for each statement.