Üye Ol | Bağlan
ANASAYFA | VERİTABANI | PROGRAMLAMA | HAKKIMIZDA | BLOG | ETKİNLİKLER | KAYNAKLAR
Yazı Hakkında
  Seviye:
Yazar:Abdullah ÇATAKLI
Okunma: 4984
Oylanma:30 kişi (6,1/10)
 
 
Tavsiye Et
Yazıcı Dostu
Evrak Çantama Al
 
KATEGORİLER
  VERİTABANI
    ORACLE
    HIZLI SQL KURSU-1
    SQL SERVER 2005
    SQL SERVER 2000
PROGRAMLAMA
    JAVA
    ADO.NET
    MOBİL PROGRAMLAMA
    ASP.NET
    VB.NET
    C# ve C#.NET
İŞARETLEME DİLLERİ
    HIZLI WEB PR. KURSU
    XML
HABERLER
EĞİTİM & SERTİFİKA
KİTAP
SÖYLEŞİ
HAKKIMIZDA
BLOG
ETKİNLİKLER
 
  XHTML,CSS,VBScript,ASP SQL Lab 2.0 Beta
Hızlı SQL Kursu(Yeni)
 
 
Son Eklenenler
 
SQL SERVER 2005
COALESCE Fonksiyonu ile Dinamik Where Şartları Hazırlamak

Transact SQL’de SQL Server 2008 Yenilikleri-1

SQL Server’da verileri Türkçe Karaktere Dönüştürmek

StrToCursor Prosedürü ile Hızlı ve Kolay Cursor Açmak

Triggerı Hangi Olayın Tetiklediğini Tespit Etmek

İleri Cursor Açma Tekniği

Yazılımcılar için SQL Server Erişim Güvenliği

JAVA
Java'ya GiriŞ - 3 : JCreator Editörü

HABERLER
Verivizyon.com Topluluk Kurucusuna MVP Ödülü

Verivizyon yeni sunucularında

 
Bu Bölümden
MS SQL Server'a Erişmek Hakkında Her şey(10033 yükleme)
Yazılımcılar için SQL Server Erişim Güvenliği(7492 yükleme)
SQL Server Verilerini 2005 Sürüme Aktarmak(7173 yükleme)
SQL Server 2005'de CLR Desteği-2(6765 yükleme)
İleri Cursor Açma Tekniği(6554 yükleme)
Rütbeleme Fonksiyonları ile Kayıtları Sıralamak(6170 yükleme)
COALESCE Fonksiyonu ile Dinamik Where Şartları Hazırlamak(5394 yükleme)
Tablo Tipli Kullanıcı Tanımlı Fonksiyonlar Kodlamak(5391 yükleme)
Transact SQL’de SQL Server 2008 Yenilikleri-1(5245 yükleme)
Satırları Sütuna veya Sütunları Satıra Dönüştürmek(5155 yükleme)
 
 
E-LİSTE
BT ve özellikle Veritabanı ile ilgili haber, yenilik ve etkinlikler hakkında önceden haber almak için bize e-mail adresinizi bırakabilirsiniz.

ANKET
SQL Server 2008'e geçtiniz mi?
Sorunsuz Geçtik
2005'e yeni geçtik
2000 bize yetiyor.
 

 


Triggerı Hangi Olayın Tetiklediğini Tespit Etmek


Bu makalemizde birden fazla olay
için tasarlanmış bir triggeri hangi olayın
tetiklediğini tespit etmeye çalışacağız Bu sayede trigger
içinde birden fazla olayı destekleyen kodları rahatlıkla yazabileceğiz ve olaya
göre kod çalıştırabileceğiz.

Hepimizin bildiği gibi Triggerlar belli olaylardan sonra kendiliğinden devreye girip çalışan yapılardır.Temel olarak verilerimiz için INSERT , UPDATE ve DELETE triggerları mevcuttur. bir tigger bu olayların tününe tepki verecek şekilde programlanabildiği gibi her olay için ayrı bir trigger da yazılabilir tabi bunun maliyeti daha çok olur.. Eğer tüm olayları aynı trigger üzerinde denetlemek istiyorsak söyle bir sorunumuz oluyordu. Triggerı tetikleyen olay acaba hangisiydi. INSERT mi , UPDATE mi , DELETE mi. Genel olarak sakıncalı olsada tüm olaylara uygun kodlar yazılıyordu. yada her olay için ayrı bir tigger...

Ama bu aşağıdaki metotla triggeri hangi olayın çağırdığını rahatlıkla anlayabiliriz. Tek yapmamız gereken bir değişken oluşturup geçici INSERTED ve DELETED tablolarını sorgulamak.

Bir INSERT işleminde sadece INSERTED tablosu etkilenir. Eğer işlem DELETE ise DELETED tablosu etkilenir. UPDATE yapıyor isek verilerin eski halleri DELETED tablosunda yeni halleri INSERTED tablosunda bulunur. metodumuzda bu gerçek üzerinden tespitlerini yapıyor.

	declare @ISLEM  VARCHAR(50)

 CREATE
TRIGGER TRG_XXXXXXX
ON TABLOADI
After INSERT , UPDATE ,DELETE 
AS

DECLARE @ISLEM VARCHAR(10)

 

IF EXISTS(SELECT * FROM INSERTED)  

    IF EXISTS(SELECT * FROM DELETED) 

     SET @ISLEM = 'U' 

    ELSE 

    SET @ISLEM = 'I' 

ELSE 

    SET @ISLEM = 'D' 

 

IF @ISLEM = 'I'
BEGIN
-- TETİKLEYEN OLAY INSERT
END ELSE
IF @ISLEM = 'D'
BEGIN
-- TETİKLEYEN OLAY DELETE
END ELSE
IF @ISLEM = 'U'
BEGIN
-- TETİKLEYEN OLAY UPDATE 
END
[25.06.2008]

Oy Ver: Kötü 1  2  3  4  5  6  7  8  9  10  İyi


YORUMUNUZ
Kullanıcı :
Başlık :
İçerik:
Lütfen Giriş Yapınız

Abdullah ÇATAKLI
Yazarımız 1980 ANKARA Doğumlu olup aslen Çankırı'lıdır. Uygulamalarını Delphide geliştirmektedir. VTYS olarak MsSql Server ve Oracle kullanmaktadır. C# ve Java'ya yönelik çalışmaları devam etmektedir. Şu an Ankara'da özel bir şirkette Kamu Kurumlarına projeler geliştirmektedir.
Yazara Ait Son Eklenen Makaleler
COALESCE Fonksiyonu ile Dinamik Where Şartları Hazırlamak(22.10.2008)
Triggerı Hangi Olayın Tetiklediğini Tespit Etmek(25.06.2008)
İleri Cursor Açma Tekniği(04.11.2007)
StrToCursor Prosedürü ile Hızlı ve Kolay Cursor Açmak(12.10.2007)
Nedir bu DBCC komutları?(11.04.2007)
TC Kimlik No Doğrulama Algoritması(12.02.2007)
T-Sql Tasarım Desenleri 1 : Obje Aramak(26.05.2006)
101 T-SQL İpucu-4(23.05.2006)
T-SQL Programcısına Hazır Kütüphane(18.04.2006)
101 Transact SQL İpucu: Bölüm-3(10.04.2006)
 

© 2003 - 2005 Verivizyon.com 'Developer Academy'. Tüm hakları saklıdır. Kullanım Sözleşmesi | Gizlilik İlkeleri | İletişim