SQL'de UDF ve saklı yordam arasındaki fark

UDF ve SQL'de saklı yordam

SQL ortamı, eldeki görevlerin başarılı bir şekilde teslim edilmesi için onunla çalışan çeşitli bileşenlerle birlikte gelir. SQL ortamında ortak olan kullanıcı tanımlı fonksiyon ve saklı yordam vardır. Aşağıda incelenen bu ikisi arasındaki farklar.

farklılıklar

Kullanıcı tanımlı işlevle görülen ilk fark, bir değer döndürmesi gereken şekilde programlanmasıdır. Saklı yordamın bir değer döndürüp döndürmeyeceği konusunda bazı izinleri vardır. Bu, saklı yordamın döndürülecek bir değere sahip olup olmadığına bağlıdır.

Kullanıcı tanımlı işlev ile saklı yordam arasında görülen diğer bir fark, ifadelerle ilgilidir. Kullanıcı tanımlı işlev yalnızca DML ifadelerine izin verilmezken yalnızca seçme ifadelerinin okunmasına izin verir. Öte yandan, saklı yordam hem seçili deyimlerin hem de güncelleştirilebilen ve değiştirilebilen DML deyimlerinin kullanılmasına izin verir.

Kullanıcı tanımlı işlev yalnızca parametrelerin girilmesine izin verir, ancak aynı parametrelerin çıkışını desteklemez. Saklı yordam, aksine, hem giriş hem de çıkış parametrelerini destekler. UDF ayrıca try-catch bloklarının kullanımına izin vermez. Saklı yordam, istisna işleme için try catch bloklarının kullanımına izin verir.

UDF ayrıca işlevler içinde işlemlerin yapılmasına izin vermez. Bu işlevsellik, işlemin gerçekleştirilmesini sağlayan saklı yordamda kullanılabilir. UDF ayrıca tablo değişkenlerinin kullanımına izin vermez ve geçici tablolara da izin vermez. Ancak saklı yordam, tablo değişkenlerinin yanı sıra içinde geçici bir tablonun kullanılmasına izin verir.

Bir işlevdeyken, UDF saklanan tabloların ondan çağrılmasına izin vermez. Fonksiyonun herhangi bir sınırlama olmadan çağrılmasını sağlayan saklı prosedür söz konusu olduğunda bu oldukça farklıdır. Fonksiyonlarla birlikte, UDF adı geçen fonksiyonların bir select deyiminden çağrılmasına izin vermez. Saklı yordam, yordamların Where / Select ve Having ifadelerinden çağrılamayacağını da içerir. Ancak Exec veya Execute, saklı yordamı çağırmak veya hatta yürütmek için kullanılabilir. Son olarak, UDF'nin sonuç kümesinden yararlanarak bir birleştirme cümlesi oluştururken kullanılabilmesidir. Saklı yordamda, bir birleştirme yan tümcesinde hiçbir yordama izin verilmediğinden bu mümkün değildir. Saklı yordamın sıfır veya hatta n değerlerine geri dönüşe izin verdiğini, UDF'nin ise önceden ayarlanmış olan belirli ve önceden ayarlanmış bir değere geri dönebileceğini unutmayın..

özet

Saklı yordam için değilken işlevin bir değer döndürmesi zorunludur.
Yalnızca UDF'de kabul edilen ifadeleri seçin, ancak DML ifadeleri gerekli değildir.
Saklı yordam, DML ifadelerinin yanı sıra tüm ifadeleri kabul eder.
UDF yalnızca girişlere izin verir, çıkışlara izin vermez.
Saklı yordam hem girdi hem de çıktı sağlar.
Yakalama blokları UDF'de kullanılamaz, ancak saklı yordamda kullanılabilir.
UDF'deki işlevlerde işleme izin verilmez, ancak saklı yordamda bunlara izin verilir.
Geçici tablolarda değil, yalnızca UDF'de tablo değişkenleri kullanılabilir.
Saklı yordam hem tablo değişkenlerine hem de geçici tablolara izin verir.
UDF, saklı yordamların işlevlerden çağrılmasına izin vermezken, saklı yordamlar işlevlerin çağrılmasına izin verir.
Saklı yordamlar birleştirme yan tümcesinde kullanılamazken UDF birleştirme yan tümcesinde kullanılır.
Saklı yordam her zaman sıfıra dönmeye izin verecektir. UDF, aksine, önceden belirlenmiş bir noktaya geri dönmesi gereken değerlere sahiptir.