|
T-SQL de Saklı Yordam, Fonksiyon ve Tetikleyiciler |
|
Gönderiliyor lütfen bekleyin... |
|
|
SQL Server üzerinde bulunan belli
işlemleri gerçekleştirmek için oluşturulmuş ve derlenmiş T-SQL
ifadelerdir. Standart SQL ’de döngü ifadeleri, şart ifadeleri gibi
programlanabilme özelliğine sahip terimler yoktur. Fakat T-SQL gibi
özelleştirilmiş araçlar bu özellikler mevcuttur. Bu yapılar veritabanında
ilk çalıştıklarında derlenirler ve sonraki kullanımlarında bir daha
derlenmedikleri için hızlı çalışırlar ve performanıs artırırlar.
Örneklerimize başlamadan önce T-SQL’de
sık kullanılan terimler üzerinde duralım.
DECLARE : Adından da
anlaşıldığı gibi bildirmek. T-sql de kullanılacak
değişkenler ,cursor gibi özel yapılar vb. bildirmek ve tanıtmak için
kullanılır.
DECLARE @Degisken1 varchar(50)
DECLARE @Degisken2 datetime
|
SET : Değişkenlere
değer atama için kullanılır.
DECLARE
@Degisken1
varchar(20)
SET @Degisken1 =
’www.csharpNedir.com’
|
CURSOR : Çeşitli
sql ifadeleri sonucunda elde edilen veri kümesi üzerinde ileri
geri ilerlemek için tanımlanan yapılardır. Bu konu ile ilgi sitemizde
makale mevcut.Okumak için
tıklayınız.
Fonksiyonlar (Functions) : Belli
bir sonucu geri döndürmek için yapılmış bir veya birden fazla yerde kullanılan
yapılardır. Programcılıkta kullanmış olduğumuz fonksiyonlar ile aynı
mantıktadırlar.
CREATE
FUNCTION FonksiyonAdı (Parametreler AS VeriTipi )
RETURNS GeriDönecekDeğerin VeriTipi
AS
BEGIN
Fonksiyonda
yapılacak işer
RETURN
GeriDönenDeğer
END
Örnek : Bu örneğimiz SQL cümlelerinde genellikle sorun
çıkaran NULL değerleri. Eğer sql cümlesinde iki değer toplarken değerlerden
biri NULL ise sonuç NULL olur. Bu funksiyonumuzda değişkenin
değerinin NULL olup olmamadığının kontrolunu yapar.
Örnek : Örneğimiz TahsilatToplam tablosunda bir
abonenin dönem dönem harcamış olduğu su miktarının bedeleri toplamlarını
bulunmakta. Fonksiyonumuz abonenin toplam tahsil edilmiş borcunu
göstermekte. RETURNS ifadesi fonksiyonun geri dönüş değerini , DECLARE
ifadesi de kullanılan değişkeni bildirir. Ayrıca burda ilk yaptığımız
fonksiyonu yani checkNULL fonksiyonunu da kullandık. Böylece Donem
değerlerinin NULL olup olmadığının kontrolunu de yapmış olduk.
Saklı Yordamlar(Stored Procedurs) :
Belli bir işlemi gerçekleştirmek için oluşturulan sql ifadeleri topluluğu .
Örneğin projenizde sql ifadelerin olmasını istemiyorsanız ve bütün
işlemleri veritabanında yapmak istiyorsanız saklı yordamları kullanabilirisinz.
Belli parametreler gönderilerek kayıt ekleme, güncelleme, silme veya
veriyi listeleme amaçlı saklı yordamlar oluşturabilirisiniz. Belli giridi
ve çıktı parametreleri olduğu için kullanılan projenin güvenliliğini
artırırlar. Ayrıca istemciden sunucuya uzun sql cümlelerinin gitmesindense
saklı yordamın adı ve gerekli parametrelerinin gitmesi ağ trafiğini de azaltmış
olur.
CREATE PROCEDURE (Parametreler
VeriTipi , DönüşDeğeriParametreler VeriTipi OUTPUT)
AS
Fonksiyonda
yapılacak işler
OUTPUT parametreleri procedur çalıştıktan sonra
geri dönüş değeri olan parametrelerdir. Ve parametre tanımlanırken @
karakterinde ikitane yazılarak oluşturulur. @@Param gibi.
Örnek : Stored procedurlerin sık kullanıldığı
yerlerden biri de tabloya veri ekleme, güncelleme yada silme işlemleri.
Aşağıdaki örneğimiz SuTahakkuk tablosuna yeni kayıt ekleme olacak. Kaydedilecek
değerler saklı yordama parametre olarak teker teker gönderilecektir.
Saklı yordamlar EXECUTE veya EXEC komutları ile
çalıştırılırlar.
EXECUTE sp_InsSuTahakkuk (1, ’1522’, ’1’,
145, 156, 120, 150)
EXEC sp_EmlakBilgileri
2004
|
Örnek : Aşağıdaki örneğimiz de işlemler sonucunda
dönüş değeri olarak tablo kullanan bir saklı sordam olacak. Ayrıca bu saklı
yordamımızda Cursor oluşturma ve kullanımına ilişkin güzel bir örnek. Bu
örneğimiz farklı tablolarda bulunan bilgileri birleştirip tek bir tablo
oluşturan bir procedur oldu. EmlakBina tablosunda sadece ilgili tabloların
Id’leri olan SahipSicil, Mahalle, Sokak bilgilerinin birleştirilip görsel
açıdan daha kullanıştı bir tablo halenine getirilmesi.
Tetikleyiciler (Triggers) : Tetikleyiciler sadece tablolarda
veya görünümlerde(views) Insert, Update ve Delete
komutları çalıştırılırken başka işlerin yapılması için tanımlanan sql
cümleleridir. Mantık olarak saklı yordamlara benzerler. Fakat bunlar ilişkili
oldukları tablo veya gönünümde ilgili işlem gerçekleştirilirken otomatik olarak
çalışmalarıdır. T-SQL iki farklı tetikleyici vardır; bunlar AFTER ve INSTEAD OF
tetikleyicileridir. AFTER tetikleyiciler ilgili işlemleri
gerçekleştirildikten hemen sonra yapılırlar. INSTEAD OF tetikleyicileri ise
işlem yapılırken araya girip öncesinde veya sonrasında başka işlemleri
yapabilme yeteneğine sahiptir.
CREATE TRIGGER TetikleyiciAdı ON
TabloAdi veyaViewAdi (FOR AFTER , INSTEAD OF) veya (FOR {INSERT, UPDATE,
DELETE})
BEGIN
Tetikleyicide yapılacak işler
END
Örnek : Örneğimiz SuTahakkuk tablosuna veri
kaydedilirken Tahsilat toplam tablosuna ilgili HemsehriId ve döneme
ait toplam tutarın değerini güncellemek olsun.
Bu makalemizde T-SQL hakkında biraz bilgi vermiş
olduk. Yukarda yapmış olduğumuz örnekleri farklı şekillerde yorumlayarak
çeşitli senaryolara oluşturabilirsiniz.
Kaynak : SQL Server Books Online
Makale:
T-SQL de Saklı Yordam, Fonksiyon ve Tetikleyiciler ADO.NET ve SQL Feryat Olcay
|
|
|
-
-
Eklenen Son 10
-
Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor
|
|