Bu site emekli olmuştur. Arşiv amaçlı olarak BT AKADEMİ sponsorluğunda yayın hayatına devam etmektedir.




C#nedir?com
 
YAZAR HAKKINDA
Feryat Olcay
Feryat Olcay
http://www.csharpnedir.com/
İletişme geçmek için tıklayın.
15 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler: ayrica bulunan farkli ifadeleri ilgili instead islemleri kullanilan server sonucunda tablosuna terimler veritabaninda yapilacak yapilar ADO.NET/SQL Feryat Olcay
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Orta
Kategori : ADO.NET/SQL
Yayınlanma Tarihi : 10.3.2005
Okunma Sayısı : 63587
Yorum Sayısı : 4     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
Silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer
Conda install environment.yml Package 4.12.2024
Turhal Temizer
Mac OS/X Removing CUDA 4.12.2024
Burak Selim Şenyurt
Rust ile ECS Yaklaşımını Anlamak 4.12.2024
Burak Selim Şenyurt
Birlikte Rust Öğrenelim Serisi 4.12.2024
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
T-SQL de Saklı Yordam, Fonksiyon ve Tetikleyiciler
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
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
  • Yazılan Yorumlar
  • Yorum Yaz
TEM
24
2012
tebrikler..
MAR
24
2010
güzel anlatım olmuş teşekkürler tek zor kısım örneklendirmelerde hep su ile ilgili tablolardan verilmiş keşke tablo isimler önceden belirtilseydi bazı şeyleri daha iyi kavrardık.yinede teşekkürler..
MAR
24
2010
güzel anlatım olmuş teşekkürler tek zor kısım örneklendirmelerde hep su ile ilgili tablolardan verilmiş keşke tablo isimler önceden belirtilseydi bazı şeyleri daha iyi kavrardık.yinede teşekkürler..
AĞU
6
2006
You were a wonderfull
Sayfalar : 1 
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • 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