SQL Server’da Stored Prosedür ve Fonksiyonlar Arasındaki Farklar
Herkese merhaba,
Bu yazıda SQL Server’da stored prosedür ve fonksiyonlar arasındaki farktan bahsedeceğim.
Stored prosedürler veritabanı tarafında saklanan ve ilk derlemeden sonra tekrar derlenmesine ihtiyaç duyulmayan sql ifadeleridir.
Fonksiyonlar ise istenilen değer tipinde geri dönüş yapabilen sql kodlarıdır.
Arasındaki farklar ise aşağıdadır.
- Fonksiyonlar her zaman geriye bir değer döndürürler (Sayı, string ifade, tablo vs.) Stored prosedürler geriye bir değer döndürebilir ya da döndürmeyebilir.
- Fonksiyonlarda sadece giriş parametreleri vardır fakat stored prosedürlerde ise hem giriş hem de çıkış parametreleri vardır.
- Fonksiyonlar stored prosedürler tarafından çalıştırılabilir fakat stored prosedürler fonksiyonlar içerisinde çalıştırılamaz.
- Fonksiyonlar sadece Select ifadesi ile kullanılabilir. Fonksiyonlar ile CRUD işlemleri yapılmaz. Stored prosedürler ile CRUD (Create/Read/Update/Delete) işlemlerinin hepsini yapabilirsiniz.
- Fonksiyonlarda try-catch yapısını kullanamazsınız fakat stored prosedürler ile kullanabilirsiniz.
- Fonksiyonlar transaction yapısını desteklemez fakat stored prosedürler destekler.
- Fonksiyonlar PRINT ifadesi desteklemez. Stored prosedürler içerisinde PRINT ifadesi kullanılabilmektedir.
- Fonksiyon ile döndürülen sonuç kümesi JOIN işlemlerinde kullanılabilir. Stored prosedürler ile kullanılmaz.
- Fonksiyon içerisinde TABLE değişkeni kullanabilirsiniz. Fonksiyonlar TEMPORARY TABLE kullanımına izin verilmemektedir. Stored prosedür içerisinde TABLE değişkeni ve TEMPORARY TABLE kullanılabilir.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.