TRIGGER SORUNU? BİLEN VARMI?

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
terazi125
Üye
Mesajlar: 15
Kayıt: 04 Ara 2010 11:48

TRIGGER SORUNU? BİLEN VARMI?

Mesaj gönderen terazi125 »

Arkadaslar verıtabanımda bir view olusturdum ve view üzerinde instead of trigger tanımllı.
sorunmu şu;
delphi tarafında bu view e adoquery ile bağlanıyorum. güncelleme yapmaya kalktığım zaman once base (ana) tablolarınun unique indexleri devreye giriyor. once viewde instead of devreye gırmesı gerekmezmı? ben ınstead of trıggerınde gereklı kontrollerıme gore guncellemeyı yanıstıyorum.

"ems sql manager " programı ıle aynı view e guncelleme yapınca once ınstead of trıggerı devreye gırıyor.
mantıken de oyle olmalı.

acaba ado bu konuda sorunlumu? yada yapıması gereken bır ayarmı var?
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: TRIGGER SORUNU? BİLEN VARMI?

Mesaj gönderen orhancc »

INSTEAD OF : Tablolar ve View’lar üzerinde tanımlanabilir.Eylem gerçekleşmeden önce tetiklenen triggerler için kullanılır.Eğer Bir tablo üzerinde INSTEAD OF trigger’ı tanımlandı ise,ve o tabloya bir kayıt eklenmek isteniyor ise,ekleme işlemi yapılmaz onun yerine trigger tetiklenir.Bu trigger içinde de istersek ekleme işlemini tekrardan yaparız.Eğer bu trigger içinde herhangi bir şey yapmaz isek bu durumda kayıt eklenmeyecektir.Velhasıl kelam ekleme işlemi Trigger’a havale edilmiş olur.

Trigger içinde yapılamıyacak işlemler vardır.Bunlar;

1. Veri tabanı oluşturulamaz,değiştirilemez,silinemez.

2. Her hangi bir table CREATE,ALTER,DROP edilemez.Index CREATE,ALTER,DROP edilemez.

Trigger’lar içinde kullanılmak üzere 2 adet tablo mevcuttur.Bunlar INSERTED ve DELETED tablolarıdır.Trigger hangi tablo için kullanılıyor ise bu tablolar,trigger’ın kullanıldığı tablonun yapısıyla aynıdır.

· Eğer Trigger INSERT işlemi için tanımlandı ise INSERTED tablosunda 1 kayıt varken DELETED tablosunda herhangi bir kayıt yoktur.

· Eğer Trigger DELETE işlemi için tanımlandı ise INSERTED tablosunda hiç kayıt yokken DELETED tablosunda 1 kayıt vardır.

· Eğer Trigger UPDATE işlemi için tanımlandı ise INSERTED 1 kayıt DELETED tablosunda da 1 kayıt olacaktır.
http://www.msegitim.net/sql/Trigger.aspx
terazi125
Üye
Mesajlar: 15
Kayıt: 04 Ara 2010 11:48

Re: TRIGGER SORUNU? BİLEN VARMI?

Mesaj gönderen terazi125 »

kardes tesekkur edrım acıklaman ıcın ama sorunum tam olarak instead of trigger inin devreye gırmemesı ıdı. ama arstırmalarım sonucu cozdum.
veritabanında

Kod: Tümünü seç

CREATE VIEW dbo.xxxx
WITH VIEW_METADATA
AS
...
seklınde

Kod: Tümünü seç

VIEW_METADATA
kullaılmalıymıs. ole baglantı nesnelerıne instead of trıgger ıyla ıletısım saglıyormus.
zor oldu cozmek ama basarmakta guzel:)))
Cevapla