Responsive Reklam Alanı

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.

Paylaşmak Güzeldir
Yazar
Yazar
SPRY Menü Yapımı? Arama Moturu Devi Google; WhatsApp’ı Satın Alıyor!
Bir yorum yazın
Siz de düşüncenizi belirtebilirsiniz.

Web Tasarım Blog Teması ES | Tüm hakları © Emre Supçin'e aittir.