23 Temmuz 2013 Salı

SQL Server'da Stored Procedures Yazmak

      Merhabalar, bugün veri tabanı ile uğraşan herkesin işine yarayacak bir konuya değiniyorum. Stored Procedures (SP) kullanımı çok kolay ve etkili bir yapıdır. Sorgularımızın cevaplarını çok hızlı bir şekilde döndürmektedir. Peki bunun nasıl yapıyor? SP'ler Database SErver'ın içinde tutulur ve sadece ilk çalıştırıldıkları anda derlenirler. Her çalıştırmada derlenme işlemi olmadığından daha hızlı çalışmaktadır. SP ile tablolarımızdan veri çekme, tabloya veri ekleme, silme ve veriyi güncelleme gibi işlemleri kolaylıkla yerine getirebilmekteyiz. 

      Peki SP nasıl yazılır? İlk olarak SQL Server'ı açıyoruz. hangi database için SP yazacaksak o database'in başındaki + işaretine tıklıyoruz. Sonra Programmability'in yanındaki + işaretine tıklıyoruz. Store Procedures sekmesine tıklıyoruz ve New Stored Procedure'a tıklıyoruz.



Bu adımları yaptıktan sonra karşımıza şöyle bir pencere gelecektir.



      Bu pencere gözünüzü korkutmasın yapılacak işlemler gayet basit. 1 numaralı yerde SP'ye isim veriyoruz. 2 numaralı kısımda ise SP'miz dışarıdan parametre alacaksa onu belirtiyoruz. Parametrenin türünü ve belirtmeyi ve parametrenin başına @ işareti koymayı kesinlikle unutmuyoruz. 3 numaralı kısımda ise veri çekme, ekleme, silme ve veriyi güncelleme gibi sql cümleciğini yazıyoruz.
      Şimdi basit bir sorgu yazalım ve çalıştıralım. Kişiler tablosundan Kisi_ID'si girilen kişinin verilerini görüntüleyelim. Ben 1 numaradaki isim kısmına SP_kisicek diyorum. Dışarıdan bir parametre alacağız, o da kişinin ID'si bu yüzden 2 numaralı kısıma ise @id isminde bir parametre tanımlıyorum... Sorgumuz şu şekilde olacak

CREATE PROCEDURE SP_kisicek
@id int
AS
BEGIN
SET NOCOUNT ON;
SELECT * FROM TBL_Kisi WHERE Kisi_ID=@id
END
GO

Sorgumuzu yazdıktan sonra Execute butonuna tıklayarak derliyoruz ve hata var ise görüyoruz. Peki yazdığımız bu SP'yi nasıl çalıştırıp test edeceğiz? SQL Serverda  New Query diyerek yeni bir sorgu açıyoruz ve exec SP_kisiekle 1 diyoruz.. bize Kisi_ID'si 1 olan kişinin verileri gelecektir. Ayrıca ekleme silme güncelleme gibi işlemleri de yapabiliriz. Veri eklemek istersek kodlarımız şu şekilde olacak:

CREATE PROCEDURE SP_havuzekle
@id int,
@ad nvarchar(50)
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO TBL_Havuz VALUES (@id, @ad)
END
GO

      !!! Dikkat etmemiz gereken noktalar birden fazla parametre olduğu için parametreleri virgül ile ayırıyoruz ve eğer ID değişkenimizi otomatik artan yaptıysak ekleme sorgusunda yazmıyoruz. 
      Silme işleminde ise parametre olarak sadece ID değişkenimizi alacağız ve ID'si bu girilen ID'ye eşit olan verileri sileceğiz. 
      Güncelleme işleminde ise parametre olarak Primary key'imizi ve güncelleyeceğimiz veriyi alıyoruz. Daha sonra ise sorgumuzu yazıyoruz ve çalıştırıyoruz.

      Son olarak söyleyeceğim yazdığınız Stored Procedures üzerinde değişiklik yapacaksanız Object Explorer penceresinde SP yazma işleminde yaptığımız işlemleri yapıp kendi yazdığımız SP'nin üzerine geliyoruz ve Modify diyoruz. Daha sonra değiştirmek istediğimiz kısımları değiştirip tekrardan Execute diyerek derliyoruz. Bir sonraki yazıda görüşmek üzere :)


Hiç yorum yok:

Yorum Gönder