| 
                
             | 
        
        
            
                
                    
                        | 
                            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
                         
                     
                 
                
                
             | 
        
        
            | 
                
             |