Merhaba Değerli Arkadaşlar…

Bu yazımda sizlere Stored Procedureleri örneklerle açıklayarak daha ayrıntılı öğrenmenizi sağlamaya çalışacağım. Önceki 2 Stored procedure yazımda öncellikle Stored procedure ü kavramsal olarak tanıtmış ardından SQL Server da basit anlamda Stored Procedure oluşturmayı silmeyi ve değiştirmeyi göstermiştim. Stored procedure ler tıpkı fonksiyonlarda (Metot ve yordamlarda aynısı) olduğu gibi Parametre alabilir ve sonuç dönderebilirler. Şimdi bunu aşağıdaki Database Server ın bize sunduğu Default Stored Procedure örneğinde daha ayrıntılı anlatayım.

Yukarıdaki Default Stored Procedure Örneğini Ayrıntılı olarak Yukarıda Kırmızı yazıyla maddeler halinde belirttiğim bölümleri aşağıda anlatacağım.

  1. SET ANSI_NULLS ON : ANSI_NULLS özelliği ON yapıldığında null olan değerlerle  karşılaştırmalar false sonucunu döndürür yani arama listesine dahil edilmez. Dolayısıyla kullanıcıya Null değerli kayıtlar bir şey döndermeyecektir.
  2. SET QUOTED_IDENTIFIER ON : SET QUOTED_IDENTIFIER özelliği ON olarak setlendiğinde çift tırnak tanımlayıcıları sınırlandırılabilir ve rakamları tek tırnak işaretleriyle ayrılmış olmalı.  SET QUOTED_IDENTIFIER OFF olarak Setlendiğinde tanımlayıcıları teklif edemez.
  3. Bu bölümde Stored Procedure işlemi için DDL (Data Definition Language) dediğimiz (Create,Alter,Drop .. vb…) kodlar olacaktır.Yani bir Procedure ü burdan Create komutuyla oluşturabilir Alter komutuyla var olan bir Stored procedure ü değiştirebiliriz. Bir Stored procedure ün oluşurken ki standartı 3 nolu bölümden de anlaşılacağı üzere CREATE PROCEDURE    <SP Adı> şeklindedir.
  4. Bu kısımda eğer yazacağımız Stored procedure müz parametreli olarak kullanılacaksa bu bölüme eklenir eğer gerek duyulmuyorsa boş bırakılır. Aşağıda vereceğim SP örneklerinde hem Parametreli hem parametresiz örnekler sunacağım.
  5. SET NOCOUNT ON:  SQL Server da her sorgu koşulduğu zaman sorgunun sonucu, etkilenen satır sayısı sorguyu çalıştıran uygulamaya geri gönderilir.Bazen bu bilgi işimize yarasada, genellikle kullanmayız. Bu komutu SP mize ekleyerek Sql Server ın bu bilgiyi hesaplayıp uygulamaya geri göndermesini engelleyerek Sistem yükünden az da olsa bir kazanç sağlarız.
  6. Bu bölümde normal Asp.Net,JSP,PHP vb dillerde yazdığımız SQL Sorgularını yazabiliriz. Select,Insert,Update, Delete komutlarını bu bölümde yazmalıyız.
  7. END diyerek Stored procedure müzü sonlandırıyoruz.Kodları genelde Begin-End blogu arasında yazsakta bunları yazmasakta olur .

Şimdi sizlere 2 örnek vereceğim bu örneklerde parametreli ve parametresiz Stored procedure ler bulacaksınızdır.

Yukarıdaki Parametreli  Stored Procedure örneğini inceleyebilirsiniz. Girdiğim parametrelerin Type larını belirttim. Şimdi bu Stored Procedure ü Exec komutuyla Çalıştırıp derleyip sizlere göstereceğim. Burda şunu hatırlatayım eğer parametreli bir SP yazıyorsanız onu exec ederken parametrelerini mutlaka yazın yoksa hata verecektir. Aşağıda bir Record u Education Tablosuna kaydedeceğim. Exec komutunun parametreli hali aşağıdadır.

Yukarıdaki yazdığımız EXEC komutunu derledik ve yukarıda da olduğu gibi hata vermedi. Şimdi veritabanımdaki Education tabloma bakıyorum EXEC komutuyla derlediğim SP nin işlevi yerine gelmiş olduğunu göreceksiniz.

Aşağıdaki Stored procedure örneğinde de parametresiz bir SP görecez.

Parametresiz bu Stored Procedure ü derlediğimiz zaman başarılı bir şekilde çalıştığını görecez.Ardından yine Exec komutunu kullanarak bu Stored Procedure ü çalıştırıp sonucunu görelim.

Bu stored procedure örneğini verdikten sonra şimdi de örnek olması açısından oluşturmuş olduğum sp_Egitim_Bilgileri_Gir , sp_Ilan_Detay adlı 2 SP mizi Database Serverdan DROP komutuyla kaldıracam.

Şimdi Database imde var olan Stored Procedurelerin listesine baktığımda aşağıda gördüğünüz gibi Sildiğim 2 Stored procedure ü göremeyeceksiniz. Çünkü bu 2 SP Database den silindi.

Böylece bu örneğin ardından bir yazımın daha sonuna gelmiş bulunmaktayım bir sonraki yazımda buluşmak dileğiyle Esen Kalın…!!

Mehmet Salih Deveci

Bilgisayar Mühendisi

Reklamlar
yorum
  1. Koray Önal dedi ki:

    Merhabalar 3 adet tablom var ve bunlardan üçündede id sütunu mevcut birinci tablomdaki id primary key ve diğer iki tablomdaki foreign key olan idlere diagramla bağlanmış bulunmakta isteğim primary key olan id alanındaki bilgi silindiğinde buna pararel diğer iki tablodada bu id numarasını tarayıp ilgili bilgileri silmesi bununla ilgilli yardımcı olursanız çok sevinirim. koray.onal91@gmail.com

    • BİLGİSAYAR MÜHENDİSİ dedi ki:

      Merhabalar Koray bey, Bu dediğinizi basit bir şekilde gerçekleştirebilirsiniz. Primary key ile bağladığınız sütün arasında ki ilişkiyi kururken ON DELETE CASCADE özelliğini işaretlemen gerekiyor. Bunu her ilişki için yaparsan o primary key silinirken aynı zamanda Foreign key olduğu kayıtda silinecektir. SQL Server Management Studio da ise onu kurduğunuz ilişkinin özelliklerinden DATABASE DESIGNER / INSERT And UPDATE Specification özelliğinden Delete Rule özelliğini Cascade Yaparak gerçekleştirebilirsin…

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s