6 Temmuz 2010 Salı

SQL DE TRİGGERLAR(TETİKLEYİCİLER)

Trigger nedir?
Trigger'ın kelime anlamı tetikleyicidir,
Sqldeki anlamı da  database tabloları üzerinde bir değişiklik olduğu zaman çalışan sql sorgularıdır.
Triggerlar ile insert,update,delete yapılabilir.

Trigger oluşturmak
create trigger TriggerAdi
on TabloAdi
tetikleyici seçeneği(hangi olay olduğunda çalışsın)
as
select ....


creat trigger tg_KategoriSilindi
on Categories
 for delete             --category silinmesini takip ediyor
as
select 'biri bir tane kategori sildi' as silme                  ---verilecek mesaj


Yeni eklenecek olan çalışanın adını veoyadını ve aldığı ID değerini ekrana yazdıralım:


create trigger tg_CalisanEklendi
on Employees
for insert
as
declare @ad varchar(10)
declare @soyad varchar(10)
declare @id int
select @ad=FirstName,
@soyad=LastName,
@id=EmployeeID from inserted
declare @veri varchar(36)
set @veri=cast(@id as varchar(3))+' '+@ad+' '+@soyad
select @veri as veriyo

insert into  Employees(FirstName,LastName)
values('fulya','ayluf')                      
  --ekleme işlemini yapılacağı zaman trigger da çalışır ve ekleme işlemi






İnstead of Triggerlar
Triggerlar ile asıl yapılması gereken yerine başka bir iş yaptırmak istediğimizde instead of trigger kullanılır.
Bu örnekte silme işlemi yerine mesaj verdirtecez:

create trigger tg_KtegorileriKoruyalim
on Categories
instead of delete
as
select 'Kategorileri silemezsin!!!'  as mesaj
delete from Categories where CategoryID=1

İnsead of triggerların önemli kullanım alanlarından bir tanesi de viewler ile birlikte kullanmaktır,birden fazla kaynak tablo ile oluşturulmuş viewlerde insert,update,delete  işlemleri yapılmak istendiğinde instead of trigger kullanmak zorunda kalınıyor,aksi halde hata verir.


DERYA GÜNDÜZ

5 yorum:

Adsız dedi ki...

Hello, I do bеlievе yοur site might be haνіng
browseг compatibility pгoblеmѕ. Whenever I loοk at
yοur sіte in Safari, it looks fine but whеn openіng
in IE, it has sοme oveгlаpping issues.
I just wanted to provide you with а quick heads up!
Besiԁes thаt, eхcellent ѕite!


Feel fгеe to surf to my site; Learn Us

Adsız dedi ki...

obviously like your web site but you have to teѕt the spelling
on sеveral оf your posts. Many of them are rife ωith spelling issues
and I to find it νery botherѕome to іnform the truth
howeѵer I'll definitely come back again.

Feel free to visit my web page ... MintedPoker Bonus

Adsız dedi ki...

When some one searches for his nесеssarу thing, so he/ѕhe wаnts tο be аѵаilаble that in detaіl,
so that thing is maintaineԁ oνеr hеrе.


Here is my homepage; ΜіntedPοker
Bonuѕ []

Adsız dedi ki...

cgfjhtgfhy

Adsız dedi ki...

tenks bro

 
Facebook

Bizi takip edin!

ESOGÜ Bilişim GünleriESOGÜ Bilişim Günleri