16. Stored Procedure

Stored procedure yazmış olduğumuz sql cümlelerini sql server üzerinde saklamamıza yarayan bir yordamdır. Avantajı ise projeyle sql kodlarını tamamen birbirinden ayırmış oluruz ve bu da bize büyük bir anlaşılabilirlik katar. Bir diğer avantajı ise hız, normalde oluşturduğumuz tüm sql kodları normalde sql tarafından çalıştırılmadan önce doğruluğu kontrol edilir bu da bir zaman kaybına sebep olur. Eğer bu kodları stored procedure ile yazarsanız sadece ilk seferde bu kontrol yapılır ve birdahaki çağırışlarınızda doğruluk kontrolünü atlamış olursunuz. Ayrıca stored prodecure’ler parametre alabilir ve geriye değer döndürebilirler.

STORED PROCEDURE YAPISI

Stored Procedure yazma

Create Proc Sp_Name
(
   //Eger parametre alıyorsa buraya parametreler yazılır
   @Parram1,
   @Parram2
 )

as
 Begin    
     //Sql kodu da bu kısma yazılır.
     Sql Codeları
 End

Stored Procedure çağırma

Exec Sp_Name  ' Parametre1 ' , ' Parametre2 '

Eğer ki yazdığınız stored procedure parametre almayı gerektiriyorsa örneğin , yeni bir kayıt ekleme ve bu kayıtların değerlerini verme gibi, yukarıdaki şekilde parametreler tanımlayabiliriz. As ifadesine kadar olan kısım stored procedurun adını ve parametre tanımlarını içerir. As’den sonraki kısımda Stored procedure’un saklayacağı kodu içerir.

Örnek
Kolay bir örnek olması açısından ; Department isimli bir tablomuz ve bu tablonun departmentName isimli tek bir kolonu olduğunu varsayalım ve biz de bu tabloya stored procedure oluşturup departman ekleme işlemi yapalım.

  * Stored Procedure’imizin ismi Sp_InsertDepartment , tek bir parametre alıyor çünkü kayıt yapacağımız tablonun tek bir kolonu var. Parametre aldığı değeri insert kodu içersisinde Tablo kolonuna eşliyor. Burada önemli ayrıntı parametre verilirken parametrenin boyutu mapleneceği tablo kolonuyla aynı boyutta olmalıdır.

Create Proc Sp_InsertDeparment
(
  @Name nvarchar(max)

)
 As
 Begin 
  Insert Into Department(DepartmentName) Values (@Name)
 End

* Stored Procedure’ı çalıştırırken de aşağıdaki gibi Exec ifadesinden sonra stored prodecurenin adı ve daha sonra parametre olarak gönderilecek değer girilir.

 Exec Sp_InsertDeparment 'Muhendislik'

Storedd procedurelar programmability klasörünün altında toplanır. Stored procedure ismine tıkladığınızda aldığı parametreleri görebilirsiniz.