Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Bütün Triggerları Kapatma/Açma
#1
Merhabalar,

Bu konuda veritabanımızda bulunan bütün Trigger'ları topluca ENABLE ve DISABLE etmeyi anlatacağım. Bu neden gerekiyor diye soracak olursanız, bazen veritabanımız üzerinde topluca kayıt güncelleme/silme vb. işlemler yapıyoruz. Eğer Trigger'lar açık olursa, her kayıt işleminde o kayda ait Trigger'da devreye girecek ve işlem süresini oldukça yavaşlatacaktır. Biliyorsunuz Trigger'lar eğer var ise bütün BEFORE/AFTER şeklinde bütün kayıt ekleme/güncelleme ve silme işlemlerinde kullanılabiliyor.

Veritabanında yapacağımız işlemler için IBExpert veya DBWorkbench gibi bir veritabanı yönetim programı kullanıyorsak zaten orada topluca bu işlemi yapabilmek mümkün, fakat kendi yazdığımız bir program içinde bu tip bir işlem yapılması gereken durumlarda (Veri güncelleme / temizleme / veri kontrolü / bakım vb. ) o zaman bu şekilde bir kodlama kullanabilirsiniz.

Veritabanındaki TÜM Trigger'ları DISABLE etmek için :

update 
    rdb$triggers 
set 
   rdb$trigger_inactive = 1
where 
   rdb$trigger_source is not null 
   and (coalesce(rdb$system_flag,0) = 0)
   and rdb$trigger_source not starting with 'CHECK'


Veritabanındaki TÜM Trigger'ları ENABLE etmek için :

update 
    rdb$triggers 
set 
   rdb$trigger_inactive = 0
where 
   rdb$trigger_source is not null 
   and (coalesce(rdb$system_flag,0) = 0)
   and rdb$trigger_source not starting with 'CHECK'

Kullanabilirsiniz.

Faydalı olması dileğiyle.

E.O.F.  (End Of Fun )
Rolleyes
Cevapla

Konuyu Paylaş : facebook gplus twitter





Konuyu Okuyanlar: 1 Ziyaretçi