Merhaba arkadaşlar,
MSSQL Server' da Stored Procedure ile User Defined Function arasında bulunan yapısal farklılıklar hakkında aşağıdaki tablodan bilgi alabilirsiniz.
# | Stored Procedure | User Defined Function |
---|---|---|
1 | Stored Procedure geriye bir değer döndürebilir ya da döndürmeyebilir. | Function geriye bir değer döndürmek zorundadır. |
2 | Stored Procedure SELECT ifadesi ile birlikte; INSERT, UPDATE, DELETE ve benzeri DML ifadelerini kullanabilir. | Function sadece SELECT ifadesini kullanmaya izin verir, DML ifadeleri kullanılamaz. |
3 | Stored Procedure giriş ve çıkış parametrelerine sahip olabilir. | Function sadece giriş parametresine sahip olabilir, çıkış parametresi desteklenmemektedir. |
4 | Stored Procedure içerisinde try catch bloklarının kullanılmasına izin verir. | Function try catch bloklarının kullanılmasına izin vermez. |
5 | Stored Procedure içerisinde Transaction işlemleri yapılabilir. | Function içerisinde Transaction işlemine izin verilmez. |
6 | Stored Procedure içerisinde TABLE değişkeni ve TEMPORARY TABLE kullanılabilir. | Function içerisinde TABLE değişkeni kullanılabilir, TEMPORARY TABLE kullanımına izin verilmemektedir. |
7 | Stored Procedure ile Function çağrılabilir. | Function ile Stored Procedure çağrılamaz. |
8 | Stored Procedure çalıştırmak için EXECUTE/EXEC ifadeleri kullanımaktadır. SELECT/WHERE/HAVING ve benzeri ifadeler ile çağrılamaz. | Function çalıştırmak için SELECT ifadesi kullanılmaktadır. |
9 | Stored Procedure ile döndürülen sonuç kümesi bir JOIN işlemine dahil edilemez. (Procedure içerisinde JOIN kullanımından bahsedilmiyor.) | Function ile döndürülen sonuç kümesi JOIN işleminde kullanılabilir. (Function içerisinde JOIN kullanımından bahsedilmiyor.) |
10 | Stored Procedure içerisinde PRINT ifadesi kullanılabilmektedir. | Function içerisinde PRINT ifadesinin kullanımı desteklenmemektedir. |
Başarılar dilerim.