11-SQL DERSLERİ – FUNCTİON

89
görünümler

Function lar eğer programlamayı biliyorsanız, programlamadaki function lar gibidir. Bir kod bloğu yazarız daha sonra lazım olduğunda çağırırız. Function lar genelde tek değer döndürmek için kullanırız. STORE PROCEDURE ler gibi tablo döndürmek için kullanmayız. Çünkü eğer tablo döndüreceksek ya STOREPROCEDURE yada VIEW kullanırız. Bunu döndüren function larda vardır ama zaten function lar yavaş çalıştığı için pek tavsiye edilmez.

Şimdi örneklere geçelim.

functionDimDate tablosunda ki FullDateAlternateKey kolonundaki MAX (maximum) tarihi bulduk. Bunu MAX fonksiyonu ile yaptık. Aynı bunun gibi bizde şimdi kendimize FUNCTION yazalım.

function2Öncelikle yaptığımız bu örnek parametresiz bir FUNCTION.  FUNCTION önce bize ne türü döndüreceğimizi sorar. Biz tarih döndüreceğimiz için RETUNS DATETIME yazdık. Ondan sonra kendimize değişken tanımladık.

(DECLARE @TableName DATETIME). SET diyip @TableDate e değer atamamız gerekiyor. İstediğimiz Date bu olacak çünkü. Eşittir dedik ve bir önceki örnekte yazmış olduğumuz SELECTsorgusunu aldık içine kopyaladık. Ondan sonra FUNCTION ımız bir değer döndüreceği için RETURN @TableDate yazdık. Ve FUNCTION ımızı oluşturduk. Ardından SELECTile FUNCTION ımızı çağırdık ve sonucu gördük.

Oluşturduğumuz FUNCTION lar  Programmability klasörünü içinde Functions ların içindeki Scalar-Valued Functions klasörünün içindedir.

Şimdi diğer örneğimizi yapalım.

function3En çok satışı yapılan ürünün kodunu FUNCTION yaptık yukardaki örneğimizde. DECLARE den sonra değişkenimizi tanımladık. SET te ise @ProductIDmize değeri atıcaz. Tek SELECT le bu işlemi yapamazdık. Çünkü birden çok kolon var. Bu yüzden bir SELECT in içinden çekmemiz gerekir. Bize ençoksatışı yapan ürün gerekli olduğu için TOP 1 yaptık.

Şimdi bu FUNCTION ımızı çağıralım.

function5

FUNCTION ımızı SELECT ile çağırdık ve sonucu gördük.

Şimdide yukardaki örneğin parametrelisini yapalım.

function4Parametreli halide yukardaki gibidir. FUNCTION ımızı SELECT ile çağırırken bu sefer bizden parametre istediği için , değer verip çalıştırdık.

Bir sonraki derse geçmek için tıklayınız.

1 Yorum

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz