Arkadaş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.
- emresupcin
- Sql
- 7 Nisan 2013 - 15:03
- Yorum Yok
- 2125 Görüntülenme
sql trigger trigger kullanımı trigger nasıl kullanılır trigger nedir trigger örnekleri trigger sql örnekleri trigger tablo işlemleri