Tetikleyici-Nedir-Nasık-Kullanılır_emresupcinMerhaba sevgili okurlar,

SQL dersi ile bu makalede birlikte olacağız ve konumuz Tetikleyici, yazılışı biraz garip olan ve bazılarının duymadığı bir terim olan Tetikleyiciyi öncelikle açıklayalım ve ne zaman kullanıldığını belirterek kısaca türlerinin neler olduğunu madde başlıkları halinde değinelim.

 

 

Tetikleyici (trigger), SQL Server üzerinde herhangi bir işlem gerçekleştiğinde başka bir işlemin tetiklenmesi için kullanılır. Tetiklenecek işlem tamamen bizim belirlediğimiz çerçevede başka bir kayıt eklemek, rapor almak veya genelde kontrol mekanizmaları oluşturmak için kullanılabilir. Tetikleyici, bir çeşit özel Stored Procedure’dür. Bir kaydın eklenmesi (INSERT), silinmesi (DELETE) veya değiştirilmesi (UPDATE) durumlarında otomatik olarak devreye girecektir.

 

 

Tetikleyiciler, Query ekranında T-SQL kodu ile veya Management Studio ile oluşturulup yönetilebilirler. Tetikleyiciler, görünümler (View) ve tablolar üzerinde tanımlanabilir.

SQL Server 2005, DDL (Data Defination Language) tetikleyicileri adında yeni bir kavramı destekler. DDL tetikleyiciler, olay gerçekleştikten sonra değil de CREATE, ALTER ve DROP gibi DDL ifadeleri için tanımlanırlar.

 

Pekii Tetikleyici Ne Zaman Kullanılır?

Çeşitli amaçlara uygun olarak tetikleyiciler kullanılabilir.

Bu amaçlar;

 

* Değişiklikleri takip etmek,
* Birincil anahtar üretmek,
* Karmaşık iş kurallarını gerçekleştirmek,
* E-posta atmak gibi olayları otomatik olarak yapmak,
* Standart hata mesajlarının dışında bir hata mesajı elde etmek,
* Veritabanı erişimlerini takip edebilmek,
* Nesnede meydana gelebilecek değişiklikleri takip ve engellemektir.

 

 

Bu arada sizlere Tetikleyiciyi Ateşleyen Olaylar’dan da bahsedeyim, karşınıza çıkabilir…

 

Bir işlemin gerçekleşmesini veya gerçekleşmeye başlamasını tetikleyici ateşleyebilir. Tetikleyiciyi ateşleyen bir işlem ile karşılaşıldığında tetikleyici ile işlem bir blokta ele alınır. Bu blok, RAM’de bulunan geçici hafıza bloğudur. Tetikleyiciyi çağıran işlemi onaylamak anlamında hiçbir işlem yapmayabilir veya işlem başarılı olmadığında işlemi geçersiz kılabilir.

 

Tetikleyici çalıştığı zaman Inserted ve Deleted adı verilen sahte tabloları kullanır. Bu tablolar tetikleyicinin ateşlendiği tabloyla eşdeğer alanlara sahiptir. Bunlar da mantıksal olarak RAM’de bulunur. Asıl tabloya bir kayıt eklendiğinde ve tetikleyici ateşlendiğinde bu kayıt Inserted tablosuna da eklenir. Tablodan bir kayıt silindiğinde silinen kayıt Deleted sahte tablosuna da eklenir. Update işlemi ise önce silme (Delete) ve ardından bir kayıt ekleme (Insert) olarak ele alınır. Bir kayıt güncellendiğinde asıl kayıt Deleted sahte tablosuna, değişen kayıt da Inserted sahte tablosuna yazılır.

 

Inserted ve Deleted sahte tabloları RAM’deki hafıza bölgesinde elde edilir. Bundan dolayı, TRUNCATE TABLE gibi yazılmayan tablolara yansımayan değişiklikler tetikleyici tarafından yakalanamaz.Tetikleyiciler dışarıdan parametre almazlar. Ancak, sahte tablolar sayesinde son işlemden etkilenmekte olan kayıtlar tespit edilebilir.

 

 

Tetikleyici Türleri Nelerdir?

SQL Server’da iki farklı tür tetikleyici vardır. Bunlar After ve Instead Of tetikleyicileridir.

 

*** After Tetikleyicileri

*** Instead Of Tetikleyicileri

——————————————————————————–

 

Tetikleyici Türlerinin açıklamasını ve nasıl Tetikleyici oluşturulduğunu bir sonra ki makalemde yazacağım…

 

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

Önceki Yazı:CSS ile Arkaplan Resmi Nasıl Eklenir?

Sonraki Yazı:Tetikleyici Türleri Nelerdir? Tetikleyici Nasıl Oluşturulur?

YORUMLAR

Bu yazıya 1 yorum yapılmış.

  1. Yazar
    Umut

    Tetikleyici şu işe de yarıyor mu?
    Örneğin tablo1 de bir işlem yaptık bir alanına veri girdik diyelim. Tetikleyicide tablo1e veri girildiğinde tablo2 deki aynı alanı değiştir veya o alanada aynı veriyi ekle diyebiliyor muyuz?

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.