Yazılım Eğitim

Yeni Haberler

SQL Server Store Procedure İşlemleri(Saklı Yordam) Kullanımı | Store Procedure

 

SQL Server Store Procedure İşlemleri

Store prosedürler (SAKLI YORDAM) (SP) birçok programlama dilinde var olan fonksiyon yapılarına karşılık gelir. 

   Blok(lar) hâlindeki bir yığın SQL komutlarını bir prosedür içerisine yazıp daha sonra lazım olduğu yerde bu prosedürü çağırmak/çalıştırmak sureti ile tüm bahsi geçen kod bloğunu çalıştırmış oluruz. 

     SP’lerin bu yapısı, çok sık veya çeşitli yerlerde ihtiyaç duyduğumuz aynı kod bloğunu her lazım olduğunda tüm kod bloğunu yazmak yerine bir defa SP olarak tanımladıktan sonra, ihtiyaç anında sadece SP’ü çağırmak sureti ile kod yazımını daha kolay ve daha anlaşılır hâle getirebiliriz. 

      SP tanımı içinde yapacağımız değişiklik SP’ün kullanıldığı her yere yansıyacaktır, SP kullanmamış olsa idik aynı kod bloğunun kullanıldığı her yere ilgili değişikliğin tek tek yansıtılması gerekecekti.

SP’lerin oluşturulurken geçtiği aşamalar şu şekildedir:

    Ayrıştırma (Parsing): Bu aşamada sentaks kontrolü yapılır. Yani yazılan ifadelerin SQL yazım standartları ve kurallarına uyup uymadığı, komut ifadelerinin doğru yazılıp yazılmadığı vs. kontrol edilir. 

    Veri tabanında bulunmayan bir tablodan select ile veri çekiliyor olması bu aşamada hata oluşturmaz ama “select” ifadesi yanlış yazılmış olursa (mesela “slect” şeklinde yazılmış olsa) hata oluşur. 

   Bu aşamada sorgu ağacı ya da sıra ağacı denen yapı ortaya çıkar.

    Derleme (Compiling): Bir önceki aşamada oluşturulan sorgu ağacından çalışma planı çıkartılır, hak ve yetkiler kontrol edilerek güvenlik denetlenir. 

   Çalışma planı, hangi aşamada hangi kontrollerin, kısıtların (constraint) veya indekslerin kullanılacağı gibi tanımları içerir. 


    Çalıştırma (Executing): Bir önceki aşamada oluşturulan çalışma planı üzerinden işlemler gerçekleştirilir. 

    SP’ler ilk defa çalıştırılırken yukarıdaki aşamaların hepsinden geçilir, daha sonraki çağrılmalarında ise sadece üçüncü aşama olan çalıştırma (executing) aşaması gerçekleşir. 

     Çünkü derleme aşamasından sonra oluşan çalışma planı hafızada (RAM) saklanır ve (SP’ün sonraki kullanımlarında) yeniden oluşturulmasına gerek kalmaz. 

     Bu yüzden SP’ler aynı içeriğe sahip script (kod) bloğuna göre daha hızlı çalışır. 

      Bu durum SP kullanmanın en önemli avantajlarındandır.

Store Prosedur Oluşturmak

Store Prosedur Çalıştırma


ipucu: Kendi tanımlayacağınız SP’leri isimlendirirken ‘usp’ ile başlatmanız kendi SP’leriniz ile sistem SP’lerinin karıştırılmaması için tavsiye edilir.

Not: SP içinden başka bir SP çağırmaya SQL Server en fazla 32. seviyeye kadar müsaade etmektedir. Rekürsif bir SP yazılmak istenirse bu duruma dikkat edilmelidir.

Not: SP’ler en fazla 2100 parametre alabilir.

Store Prosedurlerde Değişiklik Yapmak

Prosedurler de değişiklik yapmak istiyorsak eğer "Alter" komutu kullanmamız gerekmektir.

Örnek

Store Prosedürlerde Parametre Kullanımı

SP’ler parametre ile de çağrılabilir. 

   Bu şekilde kullanımı SP’lerin daha dinamik, dolayısı ile daha efektif bir şekilde kullanımını sağlar SP’ler geriye sonuç da döndürebilir. 
   Aldıkları parametreler girdi parametresi veya çıktı parametresi şeklinde olabilir.

Örnek

Girdi parametresi ile store prosedür çağırmak


Stored Procedurelarda Default veri kullanımı

Bazen gelen parametrenin zorunlu olmaması istenebilir. 

Bu durumda SP’nin tanımı içinde ilgili parametreye varsayılan olarak bir değer atanır ve SP böyle çağrılırken bahsi geçen parametre yazılmadan çağırılırsa parametrenin varsayılan değeri üzerinden işlem görülür.

    Örnek vermek gerekirse @Dili parametresi ile gelen Dili ID numarası değerine göre geri döndüreceği mesajın dilini ayarlayan bir SP’ümüz olduğunu, mesajların @Dili parametresi 1 olduğunda Türkçe, 2 olduğunda İngilizce ve 3 olduğunda Arapça olarak geri döndürüldüğünü ve @Dil parametresinin varsayılan değerinin 1 olduğunu varsayalım. 

   Bu durumda SP çağırılırken eğer dil parametresi belirtilmez ise SP sonuç mesajlarını Türkçe olarak döndürecektir.

   Şimdi ise bir örnek ile bunu gösterelim:


Çıktı parametreleri ile çalışmak

Store Procedur’e gönderilen parametrenin içinin doldurularak çağrıldığı yere geri döndürülmesi şeklinde özetlenebilir. 

   SP tanımında geri döndürülecek olan parametre(ler), veri tipinden sonra ‘OUT’ ifadesi yazılarak çıktı parametresi olduğu belirtilir.

Örnek:


Store Procedure Return Deyimi

     Bazen SP’ün parametre üzerinden değil, direk kendisinin bir sonuç döndürmesi isteyebiliriz. 
  Bu durumda "return" deyimi ile istenen  değer geri döndürülür ve kod içinde bu değer bir değişkene atanır.

Örnek: 

Return deyimi ile geriye sadece bir değer döndürülebilir.  

İpucu: Birden fazla değerin geri döndürülmesine ihtiyaç varsa çıktı parametresi kullanılabilir

Return deyimi ile Store Procedure’ü sonlandırmak için de kullanma

Return deyimi Store Procedure'i sonlandırmak için de kullanılabiliriz.

Örnek:


Hiç yorum yok