SQL Server – Stored Procedure ve User Defined Function Arasındaki Farklar
SQL Server, Stored Procedure ve User Defined Function arasındaki başlıca farklar aşağıdaki tabloda karşılaştırılmıştır.
User Defined function | Stored Procedure | |
1 | Function geriye bir değer veya tablo döndürmek zorundadır. | Stored procedure geriye değer döndürebilir veya hiçbir değer döndürmez. |
2 | Sadece Select ile kullanılabilir. DML işlemlerinde kullanılamaz. | Select ile kullanılabileceğiz gibi, DML işlemlerinde de kullanılaibilir. (insert,update) |
3 | Çıkış parametreler desteklenmez. Sadece giriş parametreleri desteklenir. | Hem çıkış hem giriş parametreleri kullanılabilir. |
4 | Try-catch yapısı ile kullanıma izin vermez. | Try-cacth yapısı ile kullanıma uygundur. |
5 | Transaction yapısını desteklemez. | Transaction yapısı ile kullanılabilir. |
6 | Tablo türü değişkenler ile kullanılabilir.(Temp Table) Geçiçi tablolar ile kullanıma izin vermez. | Hem (Temp Table) geçici tablo hemde tablo türü değişkenler ile kullanılabilir. |
7 | Bir function, stored procedure çalıştıramaz. | Stored Procedure function’ları çalıştırabilir. |
8 | Function’lar SELECT deyimi ile çağrılabilir. | Stored Procedure Select/Where/Having ile çağrılamaz. Çalıştırmak için Execute/Exec komutu kullanılmalıdır.. |
9 | Function’lar Join yapısı ile kullanılabilir. | Stored Procedure’ler Join yapısı ile kullanılamaz. |
Son madde(9) hatalı yerlerini değiştir hocam SP lerde Join kullanılır, functionlarda kullanılmaz. Yanlış bilgilendirme olmasın….
Selam Fatih, yanlış bir anlaşılma olmuş sanırsam. SP’lerin içinde tabi ki join yapısı kullanılar. SP’lerin çıktısında Join yapısı kullanılmaz demek istemiştim. SP sonucunda dönen tabloyu direk başka bir tablo/view ile join yapamayız.