Alper ÇELİK

Bilgisayar Mühendisi

stored procedure(SP) kavramına giriş

Tanım olarak Stored Procedure: çeşitli T-SQL ifadelerinin bir araya gelerek oluşturduğu bir barındırıcıdır diyebiliriz. Kendisini tekrar eden sorguları sp haline çevirip buna bir isim veririz ve sonrasında da bu sp'yi vermiş olduğumuz ismiyle çağırırız. SP oluşturmak için gerekli olan anahtar söz dizimi şu şekilde olur:   
 
CREATE PROCEDURE ya da CREATE PROC şeklinde..
 
* Prosedür oluştururken isimlendirme önemlidir ve Microsoft'un da bu konuda geliştiricilere bir tavsiyesi vardır..Der ki: SP oluştururken ön ek olarak "sp_" şeklinde isimlendirme yapmayınız..Zira sistem tabanlı prosedürler de "sp_" ön ekiyle başladığı için bir karmaşa söz konusu olabilir. Bu hususda benim tavsiyem User Prosedür anlamına gelen "up_" kullanabilirsiniz.  
 
* Prosedür oluşturduktan sonra bunu çalıştırmanın 3 farklı yolu vardır..(query kısmı için)
1- Prosedürün adını query kısmında yazdıktan sonra f5 ya da execute(!) tuşuna basmak,
2- EXEC prosedür_adı(varsa parametreleriniz..) diyip yine f5 ya da execute(!) tuşuna basmak,
3- Execute prosedür_adı
 
Ara yüzden yapmak istersek: ilgili prosedürünüze object explorer kısmından ulaşıp yine aynı şekilde çalıştırabilirsiniz.  
 
Örnek sp şu şekilde yaratılır:
CREATE PROC up_KategoriGetir
(
@KatID int
)
AS
BEGIN
SELECT* FROM Kategoriler WHERE KatID= @KatID
END
 
* Parametre tanımlı bir sp olan bu örneğimizi şu şekilde çağırıyoruz:  
EXECUTE up_KategoriGetir 2
ya da
EXECUTE up_KategoriGetir @KatID= 2  
 
* Yaratmış olduğunuz sp leri text formatında görebilmek için :
sp_helptext 'prosedür_adı_buraya'
ya da
Object explorer penceresinde sağ tıklayarak > Script Procedure as > Create To > New Query Editor
seçeneğini takip edebilirsiniz.
 
* Prosedür içersindeki cümlelerde değişiklik yapmak için ALTER PROCEDURE, ilgili prosedürü silmek için DROP PROC 'Prosedür_adı', prosedürü şifrelemek için WITH ENCRYPTION ifadelerini yazıyor olmamız gerekir.
 
Örneğin;
ALTER PROC up_KategoriGetir
(    
@KatID int   
)    
WITH ENCRYPTION
AS
BEGIN    
SELECT* FROM Kategoriler WHERE KatID= @KatID
END

Trigger Serisinin İlk Bölümüne Buradan Ulaşabilirsin

Trigger'lar özelleşmiş bir tür stored prosedürlerdir(SP).