Asp.Net 2 C# 66 DevExpress Web 24 DevExpress WinForms 1 Entity Framework 1 Fluent NHibernate 10 Google Chart 6 JavaScript 1 Linq & Lambda 17 Microsoft SQL Server 17 MySQL 4 NuGet Package 1 Visual Studio 7
MSSQL Server' da Stored Procedure ve User Defined Function Arasındaki Farklar
6 Haziran 2017 Hikmet Okumuş Microsoft SQL Server
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.