Announcement

Collapse
No announcement yet.

Rdb$trigger_inactive

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Rdb$trigger_inactive

    Hallo, ich muss um in einer Procedure gewisse update durchführen zu können zuerst einen Trigger deaktivieren, da dieser ansonsten immer eine Exception auslösen würde. Nun hab ich einfach mal so probiert aber leider ohne Erfolg, warum?
    Code:
    begin
      update rdb$triggers set RDB$TRIGGER_INACTIVE = 1 where RDB$TRIGGER_NAME = 'TRIGGER_BU2';
    
      update tabelle set ......
    
      update rdb$triggers set RDB$TRIGGER_INACTIVE = 0 where RDB$TRIGGER_NAME = 'TRIGGER_BU2';
    end
    Der Trigger zündet aber trotzdem immer.

    Danke

    Norbert

  • #2
    mach doch lieber sinngemäß


    if user<>'INTERN' then
    begin

    end

    im trigger, dann kannst du deine Operationen im Trigger so lassen wie die sind, aber deine update als dieser user durchführen ohne den trigger

    Gruß
    Holger
    www.ibexpert.com

    Comment


    • #3
      Hallo Norbert,

      für das Deaktivieren/Aktivieren eines Triggers gibt es ein ALTER TRIGGER Statement:

      ALTER TRIGGER triggername INACTIVE;

      Das (oder auch dein Update), muss dann natürlich noch committed werden. Du darfst allerdings nicht vergessen, dass dann der deaktivierte Trigger für alle Benutzer gilt!

      Handelt es sich um eine bestimmte Operation wie Replikation, Batch Inserts, usw., das mit einem eigenen Benutzer gemacht werden kann, dann den Trigger Source, wie von Holger beschrieben, durch ein IF "kapseln". Der Trigger feuert zwar dann, aber es wird dann halt nichts ausgeführt.

      Thomas
      Thomas Steinmaurer

      Firebird Foundation Committee Member
      Upscene Productions - Database Tools for Developers
      Mein Blog

      Comment

      Working...
      X