Stored Procedure Oluşturulması ve Kullanımı

Sql Server ile veritabanı üzerinde yapılan sorgular (select), veri girişleri (insert), veriler üzerinde yapılan güncellemeler (update) ve verilerin veritabanından kaldırılması (delete) gibi işlemleri her seferinde ilgili komutu yazarak işleme koymak Sql Server üzerinde yük oluşturur. Her yazılan sorgu komutu için Sql Server komutu yazım kuralları açısından (syntax) denetler ve sonraki aşamada ilgili tabloların ve alanların var olup olmadığının kontrolü yapılır ve son olarak en kısa ve en hızlı sorgunun nasıl yapılacağı belirlendikten sonra ilgili Sql scripti derlenir ve komut çalıştırılır. İşte biz Sql Server’a bu kadar işi her seferinde tekrarlatmamak için “Stored Procedure” (saklı yordam) adını verdiğimiz yapılardan faydalanırız. Stored Procedure (kısaca sp veya procedure) kullanılarak komutun derlenmesine kadar olan aşamaları bir kez tamamlanır ve procedure her çağırıldığında sadece ilgili komutun çalıştırılması sağlanır. Böylece Sql Server üzerinde daha performanslı sorgular ve komutlar çalıştırılmış olur.

Stored Procedure’ ler hem sorgu komutlarında hem de insert, update ve delete işlemlerinde kullanılabilir. C# taki kullanılan metot (yordam) kavramına benzerler. Parametre alabilirler ve geriye değer döndürebilirler. Geriye değer döndürme işlemi “return” anahtar kelimesi ile yapılır.

Stored Procedure tanımlamasını iki şekilde göstereceğiz. İlk olarak parametresiz bir procedure yazımının şablonunu verelim:

create proc/procedure   <procedure adı>                                                                          as                                                                                                                                     begin                                                                                                                                                                                                                                                                       < yazılacak ilgili sorgu komutu>                                                                                     

end

İkinci olarak ise parametreli bir procedure yazımının şablonunu verelim:

create proc/procedure   <procedure adı>

(

@prm1,

@prm2   

as

begin                                                                                                                                                                                                                                                                       < yazılacak ilgili sorgu komutu>                                                                                       

end

Procedure’ lere isim verilirken genellikle “usp” ön takısı verilerek isimlendirilirler. Ayrıca procedure ler de metotlar gibi iç içe çağrılabilirler. Procedure oluşturulurken “with encryption” ifadesi eklenirse procedure şifrelenmiş olur. Şimdi bir adet parametre almayan bir procedure oluşturalım:

Yukarıda görüldüğü gibi AdventureWorks veritabanı kullanıma alınmış ve spUrunleriGetir adlı bir procedure oluşturulmuştur. Burada dikkat edilmesi gereken nokta oluşturulan procedure çalıştırılmak istendiğinde “exec <procedure adı>” şeklinde çağırılması gerektiğidir. Aynı şekilde “execute <procedure adı>” şeklinde veya direkt olarak “<procedure adı>” yazılarak da ilgili procedure çalıştırılablir. Son olarak bir de parametre alan ve geriye değer döndüren bir sp yazalım:

Yukarıdaki örneğimizde alınan [email protected] parametresine “3” değeri verilmiş olup geriye bu kategoriden 22 adet ürün olduğunu “return” anahtar kelimesi ile aldık ve procedure çağırıldığında dönüş değeri bir değişkende tutularak ekrana sonucunu yazdırmış olduk.

Yazar: Abdullah ALTINTAŞ

Stored Procedure Oluşturulması ve Kullanımı” üzerine bir düşünce

Yorum Yaz