
Stored Procedure (Saklı Yordam) önemli bir veri tabanı objesidir. ASP.NET, C# tabanlı projelerde sıklıkla kullanılır. Parametre alır ve geriye değer döndürürler. Bu yönüyle fonksiyonlara benzerler. Ancak aralarında elbette önemli farklar vardır. Fonksiyon her zaman geriye değer dönderir ancak Stored Procedure için bu opsiyoneldir. Function sadece Select ile kullanılabilir, update veya delete yapmaz, Stored Procedure ise crud (create/read/update/delete) işlemlerinin hepsini yapabilir.
Bir örnek üzerinden gidecek olursak Ürünler ve Kategoriler adında 2 adet tablomuz olsun ve bu iki tablo birbiri ile aşağıdaki gibi ilişkili olsun;

Bu durumda Kategoriler tablomdan bir satır sildiğimde eğer bu Kategori Ürünler tablosunda kullanılıyorsa hata verecektir. Bu durumda Stored Procedure ile bu sorunu çözeriz. İlk olarak silmek istediğim Kategorideki UrunAdi’leri silen kuralımı tanımlarım daha sonra da Kategoriler tablomdaki istediğim kategoriyi silerim.

- Yukarıda gösterildiği gibi Create Procedure veya Proc ile Stored Procedure oluşturulur ve Procedure ismi yazılır.
- Parantez içerisinde parametrelerim ve yanlarında veri tipleri tanımlanır.
- Parantezden sonra AS ile Stored Procedure için istediğim query yazılır
- Exec ProcedureIsmi (@Parametre1,@Parametre2) ile execute edip Stored Procedure kullanabiliriz.

Yukarıdaki örnek ile @p1 parametresi ile Employees tablosunda Country kolonunda ‘USA’ eşit olanları görüntüle dedik ve daha sonra exec own_example1 ‘USA’ ile execute ettik.
Aynı şekilde yukarıda belirttiğim gibi Insert işlemi de gerçekleştirebiliriz. Bir örnek ile görelim ;

Yukarıda ise parametrelerimi vererek insert işlemi ile Products tabloma veri ekledim. Aynı şekilde view’de olduğu gibi with encryption ile Stored Procedure saklanabilir. Ancak bu durumda yedek almayı unutmamalıyız.
Eğer Stored Procedure içerisinden output ile dışarıya değer döndürmek istersek burada ;

Stored Procedure yazarken dışarıya aktarmak istediğimiz parametrelere output eklenir. Yukarıda ise aynı şekilde output ekledik ve declare ile belirttiğimiz @isim ve @soyisim parametreleri Stored procedure içerisinde kullanıldıktan sonra @adi=firstName ve @soyadi=lastName ile dışarıya aktarılır. select @isim + ‘ ’ + @soyisim ile gösterilir.
Örnekler fazlasıyla genişletilebilir ve geliştirilebilir. Şimdilik benden bu kadar.. Okuduğunuz için teşekkür ederim.