Tetikleyici-Türleri-Tetikleyici-Oluşturma_emresupcin

Merhaba arkadaşlar,
Az önce yazdığım makaleyi kısa bir şekilde sonlandırmak istemiştim, bu makalemde ise kalan konulara değineceğiz. Öncelikle sizlere tetikleyici türlerinden olan After Tetikleyicileri ve Instead Of  Tetikleyicileri’nin açıklamalarını yapacağım ve ardından nasıl tetikleyici oluşturulduğunu anlatacağım.

Arkadaşlar öncelikle şunu belirtmek istiyorum eğer anlayamadığınız ya da gereksiz gördüğünüz konuları yorum olarak yazıp bana iletirseniz her türlü görüşünüzü dikkate alacağım. Ayrıca sorularınızı Facebook ve Twitter profillerimizden de bizi takip ederek her türlü soruyu paylaşabilirsiniz…

 

———————————————-

TETİKLEYİCİ TÜRLERİ

 

                   *** After Tetikleyicileri

After tetikleyicileri, kendiyle ilişkili işlem gerçekleştikten hemen sonra ateşlenir. Veritabanındaki temel işlemler için (ekleme, silme ve güncelleme) After tetikleyicileri tanımlanabilir. Örneğin, yeni bir personel kaydı silindiğinde farklı tablolarda o personele ait diğer bilgilerin silinmesi After Delete tetikleyicisi ile sağlanabilir. Birden fazla tetikleyici, bir iş için tanımlanabildiği gibi, bir tetikleyici de birden fazla iş için tanımlanabilir. After tetikleyicileri, sadece tablolar için tanımlanabilir.

 

 

                   *** Instead Of  Tetikleyicileri

Instead of tetikleyicileri, belirlenen işlem gerçekleşirken devreye girer ve kendi içinde tanımlanan komutları icra etmeye başlar. Yani, belirlenen işlemin yerine geçer. Instead of tetikleyicileri işlemlerin arasına girebildiğinden kontrol amaçlı kullanılabilirler. Örneğin, ekleme işlemi için tanımlanan bir tetikleyici, ekleme işleminden hemen önce araya girerek uygun koşulların sağlanıp sağlanmadığını kontrol edebilir. Tıpkı After tetikleyicileri gibi temel veritabanı işlemleri için Instead Of tetikleyicileri tanımlanabilir. Fakat, After tetikleyicileri sadece tablolar için tanımlanabilirken Instead Of tetikleyicileri hem tablolar için hem de görünümler (views) için tanımlanabilirler.

————————————————————

 

Tetikleyici Oluşturmak Konusuna Gelecek Olursak…

Tetikleyiciyi oluşturmak için CREATE TRIGGER ifadesi veya Managemet Studio’da tablo altında bulunan Triggers klasörü üzerinde sağ tıklayarak açılan menüden New Trigger komutu kullanılır.

CREATE TRIGGER’i kullanabilmek için sysadmin, db_owner veya db_ddladmin rolüne sahip olmak gerekir. Bir tetikleyici (trigger) başka bir tabloya erişecekse bu tablo için de tetikleyici oluşturan kullanıcının erişim izni veya güncelleme izni olması gerekir.

 

Yazılışı;
CREATE TRIGGER tetikleyici_adi
ON tablo_adi
FOR veya AFTER veya INSTEAD OF (INSERT veya UPDATE veya DELETE)
AS Sql ifadeleri

————————————————————

 

INSERT Tetikleyicisi

Bir tablo üzerinde yeni kayıtlar girildikten sonra devreye giren tetikleyicidir. Insert tetikleyici devreye girdikten sonra Inserted tablosunda yeni eklenen kayıtların bir kopyası tutulur. Inserted tablosu, asıl tablonun yapısal bir kopyası olup tetikleyici sonlanana kadar saklanır. Eğer, bir tabloya birden fazla kayıt girildiyse tetikleyici her kayıt için ayrı ayrı devreye girmez. Tek seferde işlemi gerçekleştirir. Çünkü SQL Server, satır bazında tetikleyici desteği sağlamamaktadır.

 

DELETE Tetikleyicisi

Tablodan bir kayıt silindiğinde otomatik olarak yapılması istenen işlemler için DELETE tetikleyicisi kullanılır. DELETE tetikleyicisi çalıştıktan sonra silinen kayıt Deleted sahte tablosuna kaydedilir. Deleted tablosunun Inserted tablosundan farkı, asıl tablodan silinen kayıt artık Deleted tablosunda yer almaktadır.

 

UPDATE Tetikleyicisi

Tablo üzerindeki kayıt ya da kayıtlarda güncelleme olduğunda devreye girecek olan tetikleyicidir. INSERT ve DELETE tetikleyicilerden biraz farklıdır. Farkı ise UPDATE tetikleyici devreye girdiğinde Inserted sahte tablosu asıl tablodaki kayıtlardan, düzenlenmiş kayıtların kopyasını, Deleted sahte tablosu ise kayıtların düzenleme işleminden önceki hâllerini tutar.

 

INSTEAD OF Tetikleyicisi

INSTEAD OF tetikleyicisi, belirlenen işlem gerçekleşirken devreye girer ve kendi içinde tanımlanan komutları icra etmeye başlar. Yani, belirlenen işlemin yerine geçer. Bu tetikleyiciden önceki tetikleyiciler, veriler uygun değilse ROLLBACK ile işlemleri geri alırlar. INSTEAD OF, işlem gerçekleşirken verilerin uygunluğunu denetleyecektir.

Yazar
Yazar
Bilgisayar Programcısı, Web Tasarımcı, Üniversite Öğrencisi...
Twitter Facebook Google Linkedin Flickr YouTube

Önceki Yazı:SQL | Tetikleyici Nedir? Ne Zaman Kullanılır? Türleri Nelerdir?

Sonraki Yazı:Bios’ta Ne Nedir?

YORUMLAR
SİZ DE CEVAP YAZABİLİRSİNİZ
Bu yazı hakkında görüşünüzü belirtin.

ES Web Tasarım Web Tasarım Blog Teması Emre Supçin Bu tema ES Web Tasarım tarafından düzenlenmiştir. Hiçbir şekilde kopyalanamaz.