SQL Server’da Fonksiyon ve Prosedür Arasındaki Farklar Nelerdir?
Herkese merhaba,
Bu yazıda SQL Server’da Fonksiyon ve Prosedür Arasındaki Farkların neler olduğu hakkında bilgi vereceğim.
Bu soru özellikle SQL Server’ı yeni öğrenen meraklı arkadaşların aklına gelmektedir. İş mülakatlarında böyle bir soru da karşınıza çıkabilir. Kısaca bilmenizde yarar var çünkü programlama dünyasında bir şeyin yapılmasından çok, verimli ve az kaynak yapılarak yapılması da önemlidir.
- Fonksiyon her zaman geriye bir değer döndürmek zorundadır. (Sayı, text, tablo vs.) fakat Stored Prosedür opsiyoneldir, geri dönüş değeri olmayabilir.
- Fonksiyonda try-catch yapısı kullanamazsınız. Stored Prosedür’de kullanabilirsiniz.
- Fonksiyon sadece Select ile kullanılabilir, update veya delete yapmaz, Stored Prosedür ise CRUD(CREATE/READ/UPDATE/DELETE) işlemlerinin hepsini yapabilir.
- Fonksiyonda sadece input parametreleri vardır fakat Stored Prosedür’lerde hem input hem de output parametreleri kullanılabilir.
- Fonksiyon Stored Prosedür tarafından çalıştırılabilir fakat Stored Prosedür Fonksiyon tarafından çağırılamaz.
- Fonksiyonlar Transaction yapısını desteklemez fakat Stored Prosedür’ler destekler.
- Fonksiyonlarda sadece değişken tablo değerlerleri kullanılabilir, Temporary tablolar kullanılamazlar. Prosedürlerde her ikisini de kullanabilirsiniz.
- Fonksiyonlar WHERE/HAVING/SELECT bölümünün herhangi bir yerinde kullanılabilirken Stored Prosedürler kullanılamaz.
- Fonksiyonlar Select ile Stored Prosedür’ler Exec ya da Execute kullanılarak çağrılıp kullanılabilirler.
- Fonksiyonlarda indexlerden faydalanamayız, Stored Prosedür’lerde faydalanılabilinir.
- Fonksiyonlar içinde Trigger kullanılmaz, Stored Prosedür içerisinde kullanılabilir.
- Fonksiyonlar bir kez derlenmezken Stored Prosedür’ler bir kez derlenir ve verimli çalışırlar.
- Fonksiyonlarda Join yapısı ile kullanılabilir, Stored Prosedür’lerde kullanılamaz.
Umarım faydalı olmuştur.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.