SQL Server Store Procedure'ler

Dark-Man

Kıdemli Üye
5 Ocak 2013
4,430
9
I Don't Know
Stored Procedures SQL Server üzerinde tutulan T-SQL ifadeleridir. Belli bir görevi yerine getirebilmek amacıyla yapılandırılırlar. SQL Server üzerinde derlenirler. Belirledigimiz sartlara göre, program içinden çagrılarak kullanılırlar..
T-SQL deyimleriyle yazılan Store Procedures sadece ilk kez çalıstırıldıklarında derlenirler. Daha sonraki çalıstırma islemlerinde derlenmezler. Bu sayede çalısmalarımızda hız kazanmıs oluruz.
Birkaç çesit stored procedure vardır. Bunlardan bazıları asagıdaki gibidir:
System Stored Procedure: sp_ ön eki ile baslayan saklı yordamlar, SQL Server tarafından tanımlanmıs saklı yordamlardır. master veritabanında saklanırlar. Bu Store Procedures, herhangi bir veritabanı üzerinde sistemle ilgili yönetimsel islemler için kullanılırlar.
Extended Stored Procedure: Genisletilmis anlamında xp_ ön eki ile baslayan bu saklı yordamlar, SQL Server’ın dısında çalıstırılan dinamik baglantı kütüphaneleridir (DLL).
Local Stored Procedure: Biz de SQL Server üzerinde saklı yordamlar olusturabiliyoruz. Bunlara da yerel store procedures denir. Olusturdugumuz veritabanının Stored Procedure alt baslıgı altında, yerel saklı yordamlarla ilgili, stored procedure ekleme, silme, düzeltme gibi islemleri gerçeklestirebiliriz.
Olusturdugumuz veya var olan saklı yordamları kullandıgımızda birçok avantaj elde ederiz. Bunlardan bir kaçı dolayısıyla stored procedurekullanım sebepleri asagıdaki gibidir:
- Store procedures, SQL Server’ a esneklik ve hız kazandırırlar.
- Önceden derlenmis oldugu için, normal kullandıgımız bir SQL sorgusunun tekrar tekrar çalıstırılmasına nazaran daha fazla performans elde etmemizi saglarlar.
- SQL Server üzerinde tutuldugundan, yükü istemci tarafına degil de, sunucu tarafına yükleyerek programımızın performansını arttırır. (Tabi bu bir seçimdir. Sunucumuz güçlüyle bu seçimi tercih edebilirsiniz.)
- Bir kez yazılıp, tekrar tekrar kullanıldıgı için modüler bir yapıda program gelistirmis oluruz.
- Aynı T-SQL cümlecigini birden fazla yerde kullanacagımız zaman, bunu bir stored procedurehaline getirerek, kullanımını sadece ismini çagırma ile gerçeklestirebiliriz.
- Belirli girdi ve çıktı parametreleri oldugu için, saklı yordamların kullanımı ile güvenlik açısıdan kendimizi saglama almıs oluruz.
- Ag trafigini azaltır. Istemci tarafından birçok satıra sahip SQL komutunun sunucuya gitmesindense, sadece saklı yordamın adının sunucuya gitmesi agı daha az mesgul etmis olur.
Yerel Stored procedureOlusturma
Ilk olarak Sql Server'i açarız. Daha sonra Query Analyzaer'i açarız ve asagıdaki kodları yazarız. Asagıdaki store procedure bize müsteriye ait siparisleri geri döndürür.

image001.jpg

T-SQL deyimleriyle yazılan Store Procedures sadece ilk kez çalıstırıldıklarında derlenirler. Daha sonraki çalıstırma islemlerinde derlenmezler. Bu sayede çalısmalarımızda hız kazanmıs oluruz.
Birkaç çesit stored procedure vardır. Bunlardan bazıları asagıdaki gibidir:
System Stored Procedure: sp_ ön eki ile baslayan saklı yordamlar, SQL Server tarafından tanımlanmıs saklı yordamlardır. master veritabanında saklanırlar. Bu Store Procedures, herhangi bir veritabanı üzerinde sistemle ilgili yönetimsel islemler için kullanılırlar.
Extended Stored Procedure: Genisletilmis anlamında xp_ ön eki ile baslayan bu saklı yordamlar, SQL Server’ın dısında çalıstırılan dinamik baglantı kütüphaneleridir (DLL).
Local Stored Procedure: Biz de SQL Server üzerinde saklı yordamlar olusturabiliyoruz. Bunlara da yerel store procedures denir. Olusturdugumuz veritabanının Stored Procedure alt baslıgı altında, yerel saklı yordamlarla ilgili, stored procedure ekleme, silme, düzeltme gibi islemleri gerçeklestirebiliriz.
Olusturdugumuz veya var olan saklı yordamları kullandıgımızda birçok avantaj elde ederiz. Bunlardan bir kaçı dolayısıyla stored procedurekullanım sebepleri asagıdaki gibidir:
- Store procedures, SQL Server’ a esneklik ve hız kazandırırlar.
- Önceden derlenmis oldugu için, normal kullandıgımız bir SQL sorgusunun tekrar tekrar çalıstırılmasına nazaran daha fazla performans elde etmemizi saglarlar.
- SQL Server üzerinde tutuldugundan, yükü istemci tarafına degil de, sunucu tarafına yükleyerek programımızın performansını arttırır. (Tabi bu bir seçimdir. Sunucumuz güçlüyle bu seçimi tercih edebilirsiniz.)
- Bir kez yazılıp, tekrar tekrar kullanıldıgı için modüler bir yapıda program gelistirmis oluruz.
- Aynı T-SQL cümlecigini birden fazla yerde kullanacagımız zaman, bunu bir stored procedurehaline getirerek, kullanımını sadece ismini çagırma ile gerçeklestirebiliriz.
- Belirli girdi ve çıktı parametreleri oldugu için, saklı yordamların kullanımı ile güvenlik açısıdan kendimizi saglama almıs oluruz.
- Ag trafigini azaltır. Istemci tarafından birçok satıra sahip SQL komutunun sunucuya gitmesindense, sadece saklı yordamın adının sunucuya gitmesi agı daha az mesgul etmis olur.
Yerel Stored procedureOlusturma
Ilk olarak Sql Server'i açarız. Daha sonra Query Analyzaer'i açarız ve asagıdaki kodları yazarız. Asagıdaki store procedure bize müsteriye ait siparisleri geri döndürür.

image001.jpg

Store procedure ile yeni bir kayıt eklemek için asagıdaki kodları yazabiliriz.
image002.jpg

image002.jpg
@CategoryName, @Description, @Picture adında dısarıdan 3 deger alır ve bu degerleri yeni bir kayıt olarak ekler. Bu store procedures'i çalıstırmak için yazmamız yeterli olacaktır.
image003.jpg

Simdi Isterseniz ekledigimiz bu kaydı silelim,
image004.jpg

image004.jpg
Silme islemimizi de yaptıktan sonra artık güncelleme islemini de yapabiliriz
image005.jpg

image005.jpg
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.