instead of trigger

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
ozkandanaci
Üye
Mesajlar: 8
Kayıt: 07 Mar 2008 12:54

instead of trigger

Mesaj gönderen ozkandanaci »

arkadaşlar instead of update trigger im var.
ve aynı tablo üzerinde for update trigger im da var. ( Bir çok tabloya, önceki ve sonraki miktar değerlerine göre, kayıt atıyor veya güncelliyor. )

ALTER TRIGGER [trg1]
ON [dbo].[table1]
INSTEAD OF UPDATE
AS

update table1
set
field1=(select field1 from inserted)
field2=(select field2 from inserted)
field3=(select field3 from inserted)
where...

-----------------------------------------------------

ALTER TRIGGER [trg2]
ON [dbo].[table1]
FOR UPDATE
AS

if update(field1)
begin
...
end

if update(field2)
begin
...
end

if update(field3)
begin
...
end

...


ben tabloya

programımdan (update table1 set field1='xxx' where...)
programımdan (update table1 set field1='xxx' , field3='YYY' where...)
programımdan (update table1 set field2='xxx' , field3='YYY' where...)
... diye çok ihtimallerle o anda update etmek istediğim field lerimi güncellemek istiyorum.

ama instead of trigger da hepsi de update olduğu için after trigger da if update(...) hepsi için de çalışıyor.

ben sadece o anda hangi alanları güncelliyorsam instead of trigger da o alanları güncellesin istiyorum. kontrol edip sql cümlesi oluşturuyorum exec ediyorum
bu sefer de recursive oluyor diyor ve hata alıyorum.

yani en özü; instead of trigger da öyle bir şey yapmak istiyorum ki inserted tablosundan programcı hangi alanları göndermişse sadece onları update etsin.
bunun çözümünü bilen varmıdır acaba yardım ederse sevinirim







dediğimde if update(field2)
Cevapla