Transact SQL’de temelde çok kullanılan 3 yapının kullanım durumları vardır.
Stored Procedure:-Stored Procedure değer döndürebilir veya döndürmez, herhangi bir zorunluluk yoktur.
-Select kullanımı yanında DML işlemleri de Stored Procedure içerisinde kullanılabilir.
-Hata fırlatma ve İstisnalar için Try Catch ifadeleri kullanılabilir.
-Transcation’lar kullanılabilir.
-Tablo değerlerleri ve Temporary tablo olarak iki yapıda kullanılabilir.
-Fonksiyonlar Stored Procedure yapısı içerisinde kullanılabilir.
-Stored Procedure içerisinde SELECT-WHERE-HAVING kullanılamazlar.
-Kullanıcı Tanımlı Fonksiyonlar (User Defined Functions) kullanılamazlar.
Trigger:
-Kullanıcı tarafından direk olarak çağrılamaz kullanılamazlar. Kolon, tablo, veri tabanı ya da sunucu da amaçlarına göre tetiklendiğinde çalışabilirler.
-Kullanıcı tarafından direk çalıştırılamazlar. Trigger tetiklendiğinde devreye girer ve gerekli görevlerini yerine getirirler.
-Bir Trigger’da doğrudan başka bir trigger arayamayız. Yalnızca ttrigger’ların bulunmasını sağlayabiliriz.
-SQL Server’da, bir tetikleyicinin eylemi aynı tabloda veya farklı tabloda olabilecek başka bir tetikleyici olayı başlattığında tetikleyicilerin iç içe olduğu söylenir.
-Trigger’ı zamanlanmış görevler için kullanamayız.
-Trigger’a parametre gönderilemez.
-Trigger’lar geriye bir değer döndürmez.
-Transaction’lar içerisinde kullanılamazlar.
-.Net uygulamalarından çağrılamazlar. (Web ya da Masaüstü uygulamaları fark etmez.)
Fonksiyon:
-Fonksiyon bir değer döndürmek zorundadır.
-Fonksiyon sadece Select kullanımına izin verir, DML işlemleri kullanılamaz.
-Hata fırlatma ve İstisnalar için Try Catch ifadeleri kullanılamaz.
-Transaction’lar kullanılamaz.
-Sadece Tablo değerlerleri kullanılabilir, Temporary tablolar kullanılamazlar.
-Store Procedure’lar fonksiyonlarda kullanılamazlar. Fonksiyon içerisinde SELECT-WHERE-HAVING kullanılabilirler.
-Kullanıcı Tanımlı Fonksiyonlar (User Defined Functions) kullanılabilirler.