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.