SQL SERVER 2012

musa_

Üye
Katılım
12 Kas 2013
Mesajlar
10
Puanları
1
Yaş
34
Bu başlık altında bundan sonra fırsat buldukça server 2012 ile ilgili paylaşımlar yapmaya çalışacağım. ders notlarımdan eklemeler de olacaktır.

Veri tabanın da ki ilk giriş seviyesinde ki konulara değinmek yerine orta seviye de olan arkadaşlar için Procodure konusu hakkında biraz bilgi ve bir iki de örnek vereceğim.
--Procodure--
Türkçe karşılık olarak Yordam anlamına gelmektedir. Prosodürler büyük çaplı projeler de mutaka kullanılması gerekir ki bu işin içinde olanlar kullanıyorlar zaten. Prosodür farkını ancak büyük projelerde görebiliriz.Prosodürler bir kere derlendikten sonra bir daha derlenmeye ihtiyaç duymazlar. Veri tabannı sunucusunda yer alırlar.
prosodür.jpg


  • Stored Procedure ler, Database server da tutulduğu için çok hızlı çalışırlar bununda sebebi 1 defa yalnız derledikten sonra 1 daha derlenmeye ihtiyaç duymamalarıdır. Halbuki Uygulama katmanında yazmış olduğunuz SQL kodu her çağırmada tekrar tekrar derlenmek zorundadır. Buda büyük çaplı projelerde ve 1 den çok client a hizmet eden serverlar için büyük bir zaman kaybı demektir.


  • Network trafiği açısından mükemmel bir tasarruf sağlar.


  • SQL ifadelerine otomatik parametreleme sağlar. SQL ifadelerinin geçtiği yerdeki bütün parametreleri değiştirme yerine sadece SP içindeki parametreleri yada kuralları değiştirip istediğinizi gerçekleştirebilirsiniz.Buda uygulamanızı modüler olmasını sağlar uygulamaların karmaşıklığını giderir.


  • Stored procedure ler yazılırken programlama ifadelerine ek olarak (İf,while,for vb.) T-SQL komutlarını da kullanabilirsiniz.

Stored procedure ler sadece giriş ve çıkış parametreleri uygulama katmanında göründüğü için daha güvenilirdir. Database server ına erişim genelde kullanıcı ID si ve şifreyle gerçekleştiğini düşünürsek SP kullanmanın kodlarımız açısından bir güven unsuru teşkil etmiş olduğunu açıkça söyleyebiliriz.Procedure oluşturmak için gerekli olan kod bloğumuz:

CREATE PROCEDURE <Procedure_Name, sysname, ProcedureName>
AS
BEGIN

//Buraya oluşturacağımız prosedür komutlarını yazıyoruz.
END

Şimdi bir kitap ekle adında bir prosodür oluşturup bu prosodür ile kütüphanemize kitap ekleme kodlarını görelim. Bu arada yarın veri tabanı dersinden sınavım var :D hem ona da çalışmış oluyorum. neyse devam edelim.

create procedure kitap_ekle//
@ kütüphane varchar(30)=null @ isbn varchar(30)=null) //burda 3 tane parametre girdik
declare @ kutuphane_no int // değişkenimizi tanımladık
set @ kutuphane_no=null // değişkenin ilk değerini boş olarak ayarladık
select @ kutuphane_no from kutuphane
where kutuphane_ismi @ kutuphane //kütüphane ismi ile @ kütüphane parametresini birbirine eşitledik
if @ kutuphane is null or @ isbn is null //burdaki iki değer de boş değilse 0 değerini döndürecek.
return 0

else if @ kutuphane is null or not exists //eğer kütüphane varsa iki değişkeni birbirine eşitleyecek.yukarıda yaptığımız işleme benzer bi eşitleme söz konusu.
(select * from kitaplar where isbn @ isbn) //girilen isbn veya kütüphane bilgisine göre bir kitap yoksa ya da bulunamadıysa aşağıda ki kod işlenecek.
begin
print 'belirtilen kitap veya kütüphane bulunmadı'
return 0
end

else if exists(select * from kitap_kütüphane
where kutuphane_no @ kutuphane_no and isbn @ isbn
else
insert into kitap_kütüphane
values @ kutuphane_no @ isbn,1) //eğer kütüphane tablosunda böyle bir kitap yoksa bu kitabı kütüphaneye ekle. go

sanırım şimdilik bu kadar yeterli, daha fazla bilgi ya da örnek isteyen arkadaş olursa bişeyler ayarlayabilirim..:)
 

Forum istatistikleri

Konular
128,212
Mesajlar
915,856
Kullanıcılar
449,990
Son üye
alpersirakaya

Yeni konular

Çevrimiçi üyeler

Geri
Üst