Ayın Konusu: Ms-SQL Server 2005′de ‘Trigger’ Hazırlama.

Arkadaşlar Trigger’ı açıklamak gerekirse, siz tablonuza bir değer eklediğiniz, sildiğinizde ya da değiştirdiğinizde yapılmasını istediğiniz işlerin otomatik olarak gerçekleşmesini sağlıyor. Bunu biraz açıklayayım. Diyelim ki siz bir firmaya ürün stok programı yapıyorsunuz, bir üründen 2 adet sattığınızda otomatik olarak stok’dan düşmesi lazım, satan kişi gidip bir daha stok tablosundan 2 tane sattığı üründen düşmesin. İşte bu gibi işlemleri ‘Trigger’lar sayesinde yapabiliyoruz. Şimdi bakalım bu ‘Trigger’ları nasıl kullanıyoruz.

Sentaksı;

create trigger [Trigger Adı] on [Tablo Adı]
for [Delete, Update, Insert]
as
begin
   -- Yapılacak işler
end

Sanırım sentaks’da sadece for olan kısmı açıklamak yeterli olacaktır. for kısmı Trigger’in ne zaman tetikleneceğini söylüyor. Yani tabloya bir veri girildiği zaman mı?, bir satır silindiği zaman mı? yoksa bir satırdaki bilgi değiştirildiği zaman mı? bunu belirtiyor. Diğer kısımlarda anlaşılmayan bir kısım olduğunu zannetmiyorum.

Sentaks’ı uygularsak;

create trigger tr_MusteriSil on Musteri
for Delete
as
begin
   insert SilmeLog
   select Musteri, MusteriNo, getdate() from deleted
end

Uygulamada ki Trigger’ımız tahmin ettiğiniz gibi silme işleminde otomatik olarak SilmeLog isimli tabloya silinen veriyi kopyalıyor. from deleted kısmında ise silinen satırdaki veriler var ve tek satırlık bir veridir. Oradaki verileri select komutuyla çekiyoruz.

Trigger işlemleri çok sık kullanılan ve faydalı bir işlemdir. Umarım sizler için faydalı olmuştur.

Hepinize kolay gelsin, iyi çalışmalar…

Bir cevap yazın

Your email address will not be published. Please enter your name, email and a comment.