STORED PROCEDURE – VİEW – FUNCTİON KULLANIMI
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.
[raw] [/raw]
Ö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 --
[raw] [/raw]
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 --
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Ç :
Ö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.