Merhaba arkadaşlar, önceki yazımda veritabanı nesnelerine bakmıştık. Bu yazımda ise Stored Procedure konusuna bakacağız.
Stored Procedure Nedir?
Normal programlama yaparken fonksiyon ne ise veritabanı için de aynı şeyi düşünebiliriz. Bazen program üzerinde veriler ile işlem yapmak yerine SQL üzerinde bu işlemleri Procedure kullanarak yapabiliriz. Procedure’lar ek olarak bize güvenlik ve hız sağlamaktadır.
Parametre alabilirler. Bir değer döndürebilirler. Bir işlem sonucu durumu belirtebilirler. Stored Procedureler sadece ilk çalıştırıldıklarında derlenirler.
Stored Procedure Oluşturma
Procedure oluşturmak için CREATE PROCEDURE deyimi kullanılmaktadır. Eğer Procedure üzerinde bir değişiklik yapılacak ise ALTER PROCEDURE deyimi kullanılabilir.
CREATE PROCEDURE _Procedure_ismi
Degisken Listesi (Parametreler)
AS
SQL deyimleri
Stored Procedure Örnek
Öğrencilerin sınav notlarına göre geçti veya kaldı diye sonuç üreten Procedure’u yazalım.
CREATE PROCEDURE durum
@no CHAR(10)
AS
DECLARE @durum char(5)
IF (SELECT ortalama FROM ogrenci WHERE no = @no)>50
SET @durum = ‘geçti’
ELSE SET @durum = ‘kaldı’
go
SELECT no, adi, soyadi, ortalama, @durum FROM ogrenci WHERE no= @no
İkinci Örnek Sayıları Çarpma
Bu örnekte de iki sayının çarpımına bakalım.
CREATE PROCEDURE Carpim
@sayi1 int, @sayi2 int, @sonuc varchar(50)
AS
SET @sonuc=cast((@sayi1*@sayi2)as varchar(10))
print @sonuc
Ben daha önce oluşturduğum için Carpim2 adıyla tekrar oluşturdum örneği aşağıdaki gibidir.
Üçüncü Örnek Harf Notu Ekleme
Ortalamaya göre harf notu veren Procedure aşağıda verilmiştir.
CREATE PROCEDURE ekle
@sinif INT
AS
UPDATE ogrenci SET harf= ‘A’ WHERE sinif=@sinif AND ort>85
UPDATE ogrenci SET harf= ‘B’ WHERE sinif=@sinif AND ort>64 AND ort<=85
UPDATE ogrenci SET harf= ‘C’ WHERE sinif=@sinif AND ort>49 AND ort<=64
UPDATE ogrenci SET harf= ‘D’ WHERE sinif=@sinif AND ort>34 AND ort<=49
UPDATE ogrenci SET harf= ‘F’ WHERE sinif=@sinif AND ort>=0 AND ort<=34
Stored Procedure’u Kullanmak
Bunun için ise EXEC kullanilacakProcedure
Az önce oluşturduğumuz Carpim adındaki prosedure’u kullanalım.
Harf notunu veren procedure’u ise
Exec ekle 3
diyerek 3.sınıf öğrencilerinin harf notlarını verebilirsiniz.
Umarım anlaşılır olmuştur. Sizlerde benzer örnekleri yaparak pratik yapabilirsiniz. Pratik yapılmazsa en basit yerden çalışmayabilir.