HERKEZE KOLAYGELSİN ARKADAŞLAR.
Ben bir triggerı bir stored procedure çalışma esnasında pasif hale getirmek istiyorum. SP'nin işi bitince tekrar active olacak. Bunu nasıl yapabilirim?
Bilen arkadaşların yardımlarını bekliyorum. İyi Çalışmalar.
Trigger inactive
- Terminator
- Üye
- Mesajlar: 313
- Kayıt: 13 Ara 2005 01:45
- Konum: İzmir, ama Aydın Efesi!
execute statement ile inactive komutu verip edebilirsin, AMA!
aması var...
çok kullanıcılı bir sistemde münferit bir işlem için genel amaçlı bir
triggeri inactive etmek tehlikelidir 1,
triggerin inactive edilmesini önleyen bir bağımlılığı varsa edemezsin 2.
En sağlık yöntem, her zaman önerdiğim işleme özel by-pass tekniği.
Yani, Tablona bir bypass flagi olarak kullanılacak bir saha ekle.
alter table .... add bypass smallint
triggeri atlamak istediğin zamanlarda bu sahaya 1 ataması yap.
yani proceurde ya da herhangi bir yerdesin ve trigger çalışmadan işlemin yapılmasını istiyorsun, o zaman bypass=1 ile göndereceksin kaydı.
Trigger içerisinde de:
if(bypass is null or bypass=0) then
begin
-- normal işlemler..
end
else bypass = NULL; -- bu işlem için bypass gerçekleşti, durumu resetle.
aması var...
çok kullanıcılı bir sistemde münferit bir işlem için genel amaçlı bir
triggeri inactive etmek tehlikelidir 1,
triggerin inactive edilmesini önleyen bir bağımlılığı varsa edemezsin 2.
En sağlık yöntem, her zaman önerdiğim işleme özel by-pass tekniği.
Yani, Tablona bir bypass flagi olarak kullanılacak bir saha ekle.
alter table .... add bypass smallint
triggeri atlamak istediğin zamanlarda bu sahaya 1 ataması yap.
yani proceurde ya da herhangi bir yerdesin ve trigger çalışmadan işlemin yapılmasını istiyorsun, o zaman bypass=1 ile göndereceksin kaydı.
Trigger içerisinde de:
if(bypass is null or bypass=0) then
begin
-- normal işlemler..
end
else bypass = NULL; -- bu işlem için bypass gerçekleşti, durumu resetle.
Firebird Foundation Member #208
http://www.firebirdsql.org
http://www.firebirdsql.org
- Terminator
- Üye
- Mesajlar: 313
- Kayıt: 13 Ara 2005 01:45
- Konum: İzmir, ama Aydın Efesi!
pardon, yanlış anlama olmasın...
trigger örneğim sadece fikirsel, bir pseudo koddur.
gerçekte NEW.bypass şeklinde kullanmalısın.
trigger örneğim sadece fikirsel, bir pseudo koddur.
gerçekte NEW.bypass şeklinde kullanmalısın.
Firebird Foundation Member #208
http://www.firebirdsql.org
http://www.firebirdsql.org