Merhabalar Bu yazımda STORED PROCEDURE – VİEW – FUNCTİON  konularını inceleyeceğim ve örnekler ile anlatmaya çalışacağım . Umarım faydalı olur.

 

STORED PROCEDURE KULLANIMI

Store Procedure ler kısacası sql de birden fazla işlemin tanımlandığı ve yazılma amacına göre geriye değer döndüren veya döndürmeyen SQL objeleridir . SP ler giriş parametresi alabilir veya almayabilir , eğer giriş parametrelerine ilk değer ataması yapılmaz ise SP kullanıldığında giriş değerlerine değer atanması zorunlu olacaktır , yoksa hata alınır.

SP lerin içerisinde İNSERT , UPDATE ,  SELECT işlermler yapılabilir , farklı SP ler çalıştırılabilir , bu işlemlerin hepsi veya 1 tanesini yapmak mümkündür geriye birden fazla Dataset döndürebilir (birden fazla tablo döndürebilir).

SP oluşturmak için CREATE PROCEDURE prosedür_adı , düzenlemek için ALTER PROCEDURE prosedür_adı , silmek için DROP PROCEDURE prosedür_adı şeklinde kullanılır.

Örnek bir SP tanımı yapalım :

--


CREATE PROCEDURE OGRENCI_EKLE ( 

        @ADI NVARCHAR(MAX),
		@SOYADI NVARCHAR(MAX),
		@OGRENCI_NO  NVARCHAR(MAX),
		@EMAIL NVARCHAR(MAX) = '',
		@SEHIR NVARCHAR (MAX) = ''

) 

AS

INSERT INTO Ogrenciler (AdiSoyadi , OgrenciNo , Email , Sehir )
VALUES (@ADI + ' ' + @SOYADI , @OGRENCI_NO , @EMAIL , @SEHIR )
--www.salihseker.com



--

 

Yukarıda yazılı sp de Ogrenciler tablosuna insert etme işlemi yapan bir SP tanımladık . burada göreceğiniz gibi ADI , SOYADI ve OGRENCI_NO  parametreleri ne ilk değer ataması yapılmadığı için OGRENCI_EKLE SP sini kullanmak istediğimizde bu alanlar kesinlikle gönderilmelidir , EMAIL ve SEHIR parametreleri ilk değer atamaları ‘’ olarak yapılmıştır bu alanlara değer göndermez isek insert işleminde boşluk olarak insert edilecektir.

Tanımladığımız Store procedure ü kullanmak için EXEC komutu ile parametreler gönderilir.

Örn :

--


EXEC OGRENCI_EKLE   @ADI = 'DENEME',@SOYADI = 'SP',@OGRENCI_NO = '9999'  ,@EMAIL = 'A@A.COM',@SEHIR = 'istanbul'
--www.salihseker.com


--

VEYA

--

EXEC OGRENCI_EKLE   @ADI = 'DENEME',@SOYADI = 'SP',@OGRENCI_NO = '9999' 
--www.salihseker.com


--

Sonucu görmek için :

--

SELECT * FROM Ogrenciler
--www.salihseker.com


--

 

1

 

VİEW  KULLANIMI

View‘ler sorguları basitleştirmek, erişim izinlerini düzenlemek, farklı sunuculardaki eşdeğer verileri karşılaştırmak veya bazı durumlarda sorgu süresini kısaltmak için kullanılan, gerçekte olmayan Select ifadeleri ile tanımlanmış sanal tablolardır. İçerisinde veri bulunmaz. Sadece tabloların görünümleridir. Kullanıcıların bazı kritik tabloların sadece belli sütunlarını veya satırlarını göstermesi gerektiği durumlarda kullanılabilir.

 

--


CREATE VIEW view_adi
AS
SELECT sütun_adları
FROM base _tablo_adı

CREATE VIEW DENEME AS SELECT OgrenciId ,AdiSoyadi ,OgrenciNo  FROM Ogrenciler
--www.salihseker.com

--oluşan view in sonucunu göremek için 

SELECT * FROM DENEME


--

 

2

VİEW LARDA NE YAPILMAZ

Yukarıda söylediğim gibi aslında viewlerin yapamadıkları daha fazla.

  • Order  By kullanamazsınız.
  • İsimsiz kolon bırakamazsınız. Örneğin Sumfonsiyonunu kullanacaksınız As ile kesin bir isim vermek zorundasınız.
  • Birden fazla sorgu yazamazsınız yani sadece bir select ile başlayan bir cümle yapabilirsiniz.
  • T-SQL kullanamazsınız
  • Insert, Update veya Delete kullanamazsınız
  • Herhangi bir parametre yollayamazsınız.

FUNCTİON KULLANIMI :

Fonksyonlar Sql işlemlerimiz kolaylaştırmak için ve sürekli olarak yapılan işlemleri tekrar tekrar kod yazmamak için kullanılır . Örnek olarak toplama yapan bir fuction oluşturalım , iki adet sayı giriş parametresi olarak tanımlayacağız ve toplamını sonuç olarak vereceğiz.

Örn :

 

--


CREATE FUNCTION FN_TOPLAMA(@SAYI1 INT,@SAYI2 INT)  
RETURNS INT -- RETURN DEĞERININ INT OLACAĞI BELİRTİLİYOR
AS
BEGIN
    DECLARE @TOPLAM INT
    SET @TOPLAM = @SAYI1+ @SAYI2
    RETURN @TOPLAM
END
--www.salihseker.com


--Tanımladığımız fuctionun kullanımı :


SELECT dbo.FN_TOPLAMA(25,15)
--www.salihseker.com


--

SONUÇ :

3

Örneklerle ve derleme yazılar ile konu hakkında açıklayıcı olmaya çalıştım umarım faydalı olmuştur .

İyi çalışmalar dilerim.

Print Friendly, PDF & Email
Bu alana reklam verebilirsiniz!