stored procedure logo

Veritabanı Stored Procedure

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.

veritabanı stored procedure örneği ekran çıktısı

Üçü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[email protected]sinif AND ort>85

  UPDATE ogrenci SET harf= ‘B’ WHERE sinif[email protected]sinif AND ort>64 AND ort<=85

  UPDATE ogrenci SET harf= ‘C’ WHERE sinif[email protected]sinif AND ort>49 AND ort<=64

  UPDATE ogrenci SET harf= ‘D’ WHERE sinif[email protected]sinif AND ort>34 AND ort<=49

  UPDATE ogrenci SET harf= ‘F’ WHERE sinif[email protected]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.

Veritabanı Procedure ile sayıları çarpma örnek uygulama

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.

Bir cevap yazın