SQL Server da Stored Procedure Çeşitleri ve Örnekleri

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…!!

Oracle Exadata SQL Server Goldengate Weblogic EBS ve Linux konusunda aşağıdaki konularda 7×24 Uzman Danışmanlara yada Eğitimlere mi İhtiyacınız var [email protected] adresine mail atarak Bizimle iletişime geçebilirsiniz.

– Oracle Veritabanı Danışmanlığı
– Oracle Veritabanı Bakım ve Destek
– Exadata Danışmanlığı
– Exadata Bakım ve Destek
– SQL Server Veritabanı Danışmanlığı
– SQL Server Veritabanı Bakım ve Destek
– Goldengate Danışmanlığı
– Goldengate Bakım ve Destek
– Linux Danışmanlığı
– Linux Bakım ve Destek
– Oracle EBS Danışmanlığı
– Oracle EBS Bakım ve Destek
– Weblogic Danışmanlığı
– Weblogic Bakım ve Destek
– Oracle Veritabanı Eğitimleri
– Oracle VM Server Danışmanlığı
– Oracle VM Server Bakım ve Destek
– Oracle EPPM Danışmanlığı
– Oracle EPPM Bakım ve Destek
– Oracle Primavera Danışmanlığı
– Oracle Primavera Bakım ve Destek
– Oracle Eğitimleri
– SQL Server Eğitimleri
– Goldengate Eğitimleri
– Exadata Eğitimleri
– Linux Eğitimleri
– Oracle EBS Eğitimleri
– Oracle VM Server Eğitimleri
– Weblogic Eğitimleri
– Oracle EPPM Eğitimleri
– Oracle Primavera Eğitimleri

About Mehmet Salih Deveci

I am Founder of SysDBASoft IT and IT Tutorial and Certified Expert about Oracle & SQL Server database, Goldengate, Exadata Machine, Oracle Database Appliance administrator with 10+years experience.I have OCA, OCP, OCE RAC Expert Certificates I have worked 100+ Banking, Insurance, Finance, Telco and etc. clients as a Consultant, Insource or Outsource.I have done 200+ Operations in this clients such as Exadata Installation & PoC & Migration & Upgrade, Oracle & SQL Server Database Upgrade, Oracle RAC Installation, SQL Server AlwaysOn Installation, Database Migration, Disaster Recovery, Backup Restore, Performance Tuning, Periodic Healthchecks.I have done 2000+ Table replication with Goldengate or SQL Server Replication tool for DWH Databases in many clients.If you need Oracle DBA, SQL Server DBA, APPS DBA,  Exadata, Goldengate, EBS Consultancy and Training you can send my email adress [email protected].-                                                                                                                                                                                                                                                 -Oracle DBA, SQL Server DBA, APPS DBA,  Exadata, Goldengate, EBS ve linux Danışmanlık ve Eğitim için  [email protected] a mail atabilirsiniz.

5 comments

  1. 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. [email protected]

    • BİLGİSAYAR MÜHENDİSİ

      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…

  2. I’d have to check with you here. Which is not something I usually do! I enjoy reading a post that will make people think. Also, thanks for allowing me to comment!

  3. Interesting blog post. What I would like to bring about is that pc memory is required to be purchased when your computer can’t cope with anything you do along with it. One can put in two random access memory boards having 1GB each, in particular, but not certainly one of 1GB and one having 2GB. One should check the company’s documentation for own PC to be sure what type of memory is needed.

  4. Everyone loves it when folks get together and share thoughts.
    Gгeat webѕite, cοntinue thе good work!

Leave a Reply

Your email address will not be published. Required fields are marked *