Üye Ol | Bağlan
ANASAYFA | VERİTABANI | PROGRAMLAMA | HAKKIMIZDA | BLOG | ETKİNLİKLER | KAYNAKLAR
Yazı Hakkında
  Seviye:
Yazar:Yaşar GÖZÜDELİ
Okunma: 5245
Oylanma:45 kişi (7,22/10)
 
 
Tavsiye Et
Yazıcı Dostu
Evrak Çantama Al
 
KATEGORİLER
  VERİTABANI
    ORACLE
    HIZLI SQL KURSU-1
    SQL SERVER 2005
    SQL SERVER 2000
PROGRAMLAMA
    JAVA
    ADO.NET
    MOBİL PROGRAMLAMA
    ASP.NET
    VB.NET
    C# ve C#.NET
İŞARETLEME DİLLERİ
    HIZLI WEB PR. KURSU
    XML
HABERLER
EĞİTİM & SERTİFİKA
KİTAP
SÖYLEŞİ
HAKKIMIZDA
BLOG
ETKİNLİKLER
 
  XHTML,CSS,VBScript,ASP SQL Lab 2.0 Beta
Hızlı SQL Kursu(Yeni)
 
 
Son Eklenenler
 
SQL SERVER 2005
COALESCE Fonksiyonu ile Dinamik Where Şartları Hazırlamak

Transact SQL’de SQL Server 2008 Yenilikleri-1

SQL Server’da verileri Türkçe Karaktere Dönüştürmek

StrToCursor Prosedürü ile Hızlı ve Kolay Cursor Açmak

Triggerı Hangi Olayın Tetiklediğini Tespit Etmek

İleri Cursor Açma Tekniği

Yazılımcılar için SQL Server Erişim Güvenliği

JAVA
Java'ya GiriŞ - 3 : JCreator Editörü

HABERLER
Verivizyon.com Topluluk Kurucusuna MVP Ödülü

Verivizyon yeni sunucularında

 
Bu Bölümden
MS SQL Server'a Erişmek Hakkında Her şey(10033 yükleme)
Yazılımcılar için SQL Server Erişim Güvenliği(7493 yükleme)
SQL Server Verilerini 2005 Sürüme Aktarmak(7173 yükleme)
SQL Server 2005'de CLR Desteği-2(6765 yükleme)
İleri Cursor Açma Tekniği(6554 yükleme)
Rütbeleme Fonksiyonları ile Kayıtları Sıralamak(6170 yükleme)
COALESCE Fonksiyonu ile Dinamik Where Şartları Hazırlamak(5394 yükleme)
Tablo Tipli Kullanıcı Tanımlı Fonksiyonlar Kodlamak(5391 yükleme)
Transact SQL’de SQL Server 2008 Yenilikleri-1(5245 yükleme)
Satırları Sütuna veya Sütunları Satıra Dönüştürmek(5155 yükleme)
 
 
E-LİSTE
BT ve özellikle Veritabanı ile ilgili haber, yenilik ve etkinlikler hakkında önceden haber almak için bize e-mail adresinizi bırakabilirsiniz.

ANKET
SQL Server 2008'e geçtiniz mi?
Sorunsuz Geçtik
2005'e yeni geçtik
2000 bize yetiyor.
 

 


Transact SQL’de SQL Server 2008 Yenilikleri-1


SQL Server 2008 ile birlikte T-SQL dilindeki yeniliklerden, değişkenlere başlangıç değeri atanması, Bileşik operatörler ve Tablo Tipi ile ilgili iyileştirmeler ele alnmakta.

Transact SQL(kısaca T-SQL), SQL Server’a özgü SQL lehçesi olup, SQL Server üstünde sorgulamaların yapılabilmesi gibi basit amaçların yanı sıra, Stored Procedure’ler, fonksiyonlar, trigger’lar ve benzeri karmaşık veritabanı seviyeli program bileşenleri kodlamada kullanılan dildir.

Özellikle LINQ gibi ORM(nesne-ilişkilsel veri eşleşim) kütüphaneler yazılım dünyasında kullanılmaya başlandıkça T-SQL ile yazılan karmaşık kodları veritabanı seviyeli programatik öğelere kaydırmak neredeyse zorunluluk halini almakta. Böylece Veri katmanı ile iş katmanı arasındaki hatların daha keskin çizgilerle ayrıldığını söylemek mümkün.

Bu makalede, T-SQL dilinde ve kodlama ortamında SQL Server 2008 ile birlikte gelen yeniliklerden bir kısmını ele alacağız.

1.Değişkenlere Başlangıç Değer Ataması

T-SQL 2008’den itibaren herhangi bir değişkene tanımlandığı yerde başlangıç değeri atanabilir hale geldi. Diğer programlama dillerinden zaten alışık olduğumuz bu yöntemi artık T-SQL ile de kullanabileceğiz:

Örnek 1:
Şekil 1: Değişkenlere başlangıç değer atanabilmekte.


Şekil 2: SQL Server 2005 Beta-2’den itibaren kaldırılan intelli-sense desteği, SQL Server 2008 Management Studio ile tekrardan geliştiricilerin desteğine sunulmuş durumda. Management Studio ile T-SQL programları kodlarken, herhangi bir anda editör yardımı için, ctrl+space tuş bileşimini kullanabilirsiniz.

DİKKAT:
SQL Server 2008’den itibaren, satır sonlarını “;” ile bitirmeniz tavsiye edilmekte. İlerleyen sürümlerde, sonu noktalı virgül(;) ile bitmeyen ifadeleriniz sorun çıkartabilir.

2.Bileşik Operatör Desteği

T-SQL, 2008’den itibaren bileşik atama operatörlerine destek sağlamakta.

Örnek-2:

DECLARE @sayac INT=0;
SET @sayac +=7;
SELECT @sayac as arti7;
SET @sayac -=2;
SELECT @sayac as eksi2;
SET @sayac *=10;
SELECT @sayac as carpi10;
SET @sayac /=5;
SELECT @sayac as bolu5;
SET @sayac %=8;
SELECT @sayac as mod8;

Şekil-3:Bileşik Operatörlerin T-SQL’de kullanımı

T-SQL, şu an için artım(++) ve azatlım(--) operatörlerine destek sağlamamakta.

3. Tablo Tipi Değişkenler Hakkında

Tablo tipi değişkenler, SQL Server 2000’den bu yana destek verilen bir tip olmakla birlikte üstünde bir dize yenilikler yapılmış.

a)Toplu Değer Üretimi:

VALUES(…),(…)…..; kalıbı ile tablo tipinde değerler üretilebilmekte.

Örnek-3:

Şekil 4: Literal olarak verilen değerlerden tablo üretilmesi ve tablo tipinde bir değişkene eklenmesi. SQL Server 2008’deki yenilik, literallerin tablo gibi algılanmasıdır.

VALUES ifadesi ile elde edilen tabloyu başka amaçlar için de kullanabilirsiniz.

Örnek-4:

SELECT *
 FROM(
 VALUES	(1,'ali',7),
		(2,'veli',7),
		(3,'cemal',6),
		(4,'Gülçin',5)
		) AS C(numara,isim,yas);  

Ve elde edilen değerleri gerçek bir tabloymuş gibi sorgulamak mümkündür.

Şekil -5: Literal değerlerden türetilmiş tablo elde ederek sorgulama yapılması.

b)Tablo tipi değişkenleri alias tip olarak tanımlamak


Şekil: Tablo türünden bir alias tip oluşturmak

c) Tablo Tipi Değişkenleri Parametre Olarak Aktarmak

SQL Server 2008’e kadar, tablo tipi bir değişkeni prosedürel veritabanı bileşenlerine parametre olarak aktarmanın doğrudan bir yöntemi yoktu. Alternatif olarak virgülle ayrılmış string ifade gönderimi gibi yöntemler kullanılsa da güvenlik açıklarına neden olduğundan 2008 sürümden itibaren Tablo tipi girdi değişken desteği, Alias tip olmak koşulu ve sadece okunabilir kalması şartı ile desteklenmekte.

Örnek-5:

Öncelikle girdi parametre olarak tablo tipi değişken kabul eden(girdi değişkeni select eden basit bir örnek) kodlayalım:

USE Test
GO
CREATE PROC TableTipAlanSp(@ogrenciListesi AS dbo.Ogrenci READONLY)
AS
BEGIN
	SELECT * FROM @ogrenciListesi;
END

Ve daha sonra, bu prosedürü kullanalım:

DECLARE @ogrenciListesi AS dbo.Ogrenci 
INSERT INTO @ogrenciListesi 
VALUES(1,'Ali'), (2,'veli'), (3,'Gülçin') ;
EXEC TableTipAlanSp @ogrenciListesi ;


Şekil:Tablo türünden bir alias tip kullanarak, tablo tipi değişkeni girdi parametre olarak kabul eden bir prosedür ve kullanımı.

Gelecek Bölümlerde:

  • Tarih ve Zaman ile ilgili yenilikler
  • Hiyerarşik Verilerle İlgili Yenilikler
  • Gruplama Hakkında Yenilikler
  • Merge İfadesi, Seyrek Sütunlar, Filtreli İndeksler ve İstatistikler
[01.09.2008]

Oy Ver: Kötü 1  2  3  4  5  6  7  8  9  10  İyi


YORUMUNUZ
Kullanıcı :
Başlık :
İçerik:
Lütfen Giriş Yapınız

Yaşar GÖZÜDELİ

Ystanbul Üniversitesi Bilgisayar Mühendisli?i mezunu. 2000 yylyndan bu yana birçok kurumda veritabany uygulamalary geli?tirdi ve "SQL Server ile Veritabany Tasarymy ve Gerçekleme" e?itimleri verdi. NetLIFE, ComputerLIFE, PCLIFE gibi bazy bilgisayar-Magazin dergilerinde yazylary yayynlandy. Halen Byte Türkiye'nin serbest yazarlaryndan ve bu dergi tarafyndan yayynlanan Veritabany Programlama serisinden iki kitapçy?yn yazary. 'veritabany akademisi' slogany ile Veritabany programlama alanynda içerik payla?ym toplulu?u Verivizyon.com'un kurucu üyesi. Bazy E-ticaret projelerinde görev aldy ve halen C# ve ASP.NET ile veritabany uygulamalary geli?tirmekte.

"SQL Server ile Temel Veritabany Programlama" adynda yayynlanmy? ilk kitaby bu alanda kabul gördü. Halen birçok üniversitede ders kitaby olarak okutulmakta. SQL Server ile veritabany programlama hakkynda, "Yazylymcylar için SQL Server 2005" adly yayynlanmy? ikinci bir kitaby daha bulunmakta. Bazy üniversitelerde veritabany yönetim sistemleri dersi okuttu. SQL Server 2000 ve 2005 ile ilgili birçok seminer ve e?itimler verdi. Gazi Üniversitesi Bilgisayar Mühendisli?i yüksek lisans programyndan "Meta-Sezgizel Yöntemlerle XQuery Optimizasyonu" üstüne tez çaly?masy ile mezun olmu?tur. 2007 yylynda MS SQL Server 2007 alanynda yapty?y çaly?malaryndan dolayy Microsoft tarafyndan "En De?erli Profesyonel"MVP ünvany ile ödüllendirildi.

Kişisel Sitesi:http://blog.verivizyon.com/ygozudeli

Yazara Ait Son Eklenen Makaleler
Transact SQL’de SQL Server 2008 Yenilikleri-1(01.09.2008)
SQL Server’da verileri Türkçe Karaktere Dönüştürmek(26.08.2008)
Yazılımcılar için SQL Server Erişim Güvenliği(05.11.2007)
MS SQL Server'a Erişmek Hakkında Her şey(21.05.2007)
Nesneleri İlişkisel Veritabanı ile Konuşturmak ve NHibernate(04.09.2006)
SQL Server Verilerini 2005 Sürüme Aktarmak(28.08.2006)
Rütbeleme Fonksiyonları ile Kayıtları Sıralamak(15.06.2006)
Tablo Tipli Kullanıcı Tanımlı Fonksiyonlar Kodlamak(01.06.2006)
SQL Server 2005'de CLR Desteği-2(17.01.2006)
Tip Geçişlerini Anlamak veya System.Data.SqlTypes(24.11.2005)
 

© 2003 - 2005 Verivizyon.com 'Developer Academy'. Tüm hakları saklıdır. Kullanım Sözleşmesi | Gizlilik İlkeleri | İletişim