User Defined Functions (UDF)_2
17 Aralık 2016 Cumartesi
Serinin ilk bölümünde UDF konusuna bir giriş yapmıştık ve sonrasında ise Scalar Fonksiyon konusunu işlemiştik. Bu bölümde ise Inline Table konusunu işliyor olacağız.
İkisi arasındaki en önemli fark Sacalar Fonksiyon'da tek bir geri dönüş değeri var iken inline table'da ise ismi üzerinden geri dönüş değeri tablo'dur diyebiliriz.
Örnek yazım şekli aşağıdaki gibidir:
CREATE FUNCTION Function_Name (@Params1 DataType, @Params2 DataType,..., @ParamsN DataType)
RETURNS TABLE
AS
RETURN (SELECT Clause..)
Yukarıdaki yazım şeklini inceleyecek olursak:
* Dönüş tipi (return type) olarak TABLE tanımlıyoruz, Scalar Fonksiyon yazım şeklinde ise herhangi bir datatipi tanımlayabiliyorduk.(int, nvarchar).
* Fonksiyon gövdesine dikkat edecek olursanız BEGIN&END blokları kullanılmıyor ancak bu bloklar hatırlarsanız Scalar Fonksiyon gövdesinde var idi.
* Fonksiyon gövdesinde bulunan TABLE sözcüğü, SELECT cümleciği içersindeki kolonlar ile doldurulur.
Table Functions'ların oluşturulduktan sonra depolandıkları yer Programmability > Functions > Table-valued Functions seçeneği altındadır. Table Functions'lar oluşturulduktan sonra tablo gibi davrandığı için SELECT cümlesi içersinde FROM elementinden sonra kullanılabilir. Table functions'lar gerçekten çok güçlü yapılardır..View gibi davranmalarının ötesinde parametre de alabilirler bunun dışında tablo gibi davrandıkları için her tür join işlemine de sokulabilir..
Bir sonraki yazımda görüşmek üzere.