Hızlı Konu Açma

Hızlı Konu Açmak için tıklayınız.

Son Mesajlar

Konulardaki Son Mesajlar

Reklam

Forumda Reklam Vermek İçin Bize Ulaşın

MS SQL , Trigger oluşturmak , Create Trigger

Mr.Onur

Fahri Üye
Fahri Üye
Fenerbahçe
Katılım
3 Şubat 2014
Mesajlar
1,744
Tepkime puanı
0
Puanları
0
Klasik manada Trigger , veri değişiminin hemen ardından loglar üzerinden otomatik devreye giren özel bir Stored Procedure'dür.

Create Trigger ifadesini çalıştırabilmek için , sysadmin server rolüne veya db_owner sistem rolüne veya db_dlladmin sistem rolüne sahip olmak gerekir.Ayrıca sahibi olunan tablo yada view için kullanıcı başka izne ihtiyaç duymadan trigger oluşturabilir.

Temel olarak iki farklı trigger çeşidi vardır.INSTEAD OF Ve AFTER . After triggeri sadece tablolar üzerinde tanımlanırken , INSTEAD OF ise hem tablolar hemde viewler üzerinde tanımlanabilir.

After trigger'ı ile Instead of triggeri arasındaki en önemli fark ,After trigger'ını devreye sokan olay olmuş kabul edilerek akışı trigger bırakırken , Instead of ise istenileni gerçekleştirmez,sadece sözde tablolara (inserted ,deleted) kaydeder ve basamaklı güncelleme ve basamaklı silme işlemine destek vermez.

Üç farklı olay için trigger yazılabilir , bunlar ; INSERT , UPDATE DELETE


Şimdi şöyle bir örnek yapalım , foruma yeni bir konu açıldığında , dede@gencklavyeler.com adresine mail atan bir trigger yazalım;

Kod:
[B][COLOR=#006400][FONT=comic sans ms]CREATE TRIGGER konuAcildi
ON tbl_konular
FOR INSERT
AS
DECLARE @konuId BIGINT,@msg VARCHAR(255)
SELECT @konuId=inserted.konuId
FROM inserted

SET @msg= CAST(@konuId AS VARCHAR (16) ) + 'id li foruma yeni bir konu açıldı'
 
[/FONT][/COLOR][/B][B][COLOR=#006400][FONT=comic sans ms][B][COLOR=#006400][FONT=comic sans ms]EXEC master..xp_sendmail 'dede@gencklavyeler.com' , @msg
[/FONT][/COLOR][/B][/FONT][/COLOR][/B]
sql query ' den bir görünüm

 

Users Who Are Viewing This Konu (Users: 0, Guests: 1)

Üst