SQL-Trigger_emresupcinArkadaşlar bu yazımda sizlere SQL kullanarak trigger ile silinen bilgileri başka tabloda nasıl tutulacağını söyleyeceğim. Dersimize başlamadan önce Trigger’ı da detaylı bir şekilde açıklayayım isterseniz;  Bilindiği üzere trigger’lar tetikleyici olarak adlandırılırlar. Peki tetikleyici ne demek? dediğinizi duyar gibi oldum;

Veri tabanınız üzerinde herhangi bir transactional işlem yani delete, insert, update işlemi yaptığınız anda veri tabanınızın istediğiniz başka bir işlemi otomatik olarak kendisinin gerçekleştirmesidir.

 

Varsayalım veri tabanımızdaki tablolardan biri,bir diğerine bir sütunla bağlı. Bu sütundan bir veri silindiğinde diğer tablomuzda bu silinen verilerin bulunduğu kayıtların da silinmesi isteniyor.Böyle bir durumda yapacağımız olay ilk tablomuz için bir trigger yazmaktır.

 

Böylelikle bu tablodan bir veri silindiğinde, trigger otomatik olarak çalışacak ve diğer tabloya gidip ilgili kaydı silecektir. Trigger’lar işlerimizi kolaylaştırabileceği gibi karmaşık bir veritabanı için çok iyi kontrol edilmezlerse,çok büyük sıkıntılara da yol açabilirler. Trigger’ların yazım şekli aşağıdaki gibidir. Trigger oluşturuluyorsa CREATE, oluşturulmuş bir trigger değiştiriliyorsa ALTER deyimi kullanılır. AFTER deyiminden sonra ise tabloya yapılacak hangi işlemden sonra bu trigger’ın tetikleneceği belirtilir.

 

Dersimize dönelim ve veri tabanımızda tablodan sildiğimiz bilgileri tekrar görmek için trigger nesnemizin ne işe yaradığını göreceğiz.

 

Öncelikle veri tabanımızda Rezervasyon adında bir tablomuz olsun. Tablomuz oluşturmak için;

 

          1  Create Table rezervasyon
          2  (
          3   rezID int,
          4   Adi varchar(50),
          5   Soyadi varchar(50),
          6   Constraint PK_DatabaseName_rezervasyon Primary Key(rezID)
          7 )

 

 

Yukarıdaki SQL script’ini yazarak tablomuzu oluşturduk. tablomuzda kayıt olduğu varsayalım. Makalemizin asıl amacı olan bir kaydı sildiğimiz de onu nasıl başka tabloda tutabiliriz.

 

 

       1  create trigger TR_silinenRezervasyon on Rezervasyon
       2  After delete
       3  As
       4  Begin
       5
       6  Declare @ID int 
       7  Declare @ad varchar(50)
       8  Declare @soyad varchar(50)
       9  Select @ID=rezID from deleted
       10  select @ad=Adi from deleted
       11  Select @soyad=Soyadi from deleted
       12    insert into silinenRezervasyonlar values(@ID,@ad,@soyad)
       13
       14    End

 

 

Trigger ile gördüğümüz gibi veri tabanımızdaki tablodan bir kayıt sildiğimizde, silinen kaydı başka tabloda tutabiliyoruz.

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

Önceki Yazı:SPRY Menü Yapımı?

Sonraki Yazı:Arama Moturu Devi Google; WhatsApp’ı Satın Alıyor!

BENZER YAZILAR
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.