T-SQL Nedir, Standart SQL'den Nerede Ayrılıyor?

Haberci

SEO UZMANI
Yönetici
Katılım
21 May 2023
Mesajlar
777
Tepki
17
Puan
18
1051




Aynı sorguyu iki farklı veritabanında çalıştırdığınızda birinde geçen komut öbüründe hata veriyor. Sorun sorguda değil, hangi lehçeyi konuştuğunuzda.

Aşağıda T-SQL'in ne olduğunu, hangi ürünlerde geçerli olduğunu, standart sorgu dilinin üstüne hangi ögeleri eklediğini ve başka sistemlerdeki karşılığının ne olduğunu üreticilerin kendi belgelerine bakarak topluyoruz.

Kısaltmanın karşılığı​


T-SQL, Transact-SQL'in kısaltması. Microsoft'un dil başvurusu konumunu tek cümlede veriyor: T-SQL, Microsoft'un SQL ürün ve hizmetlerini kullanmanın merkezinde duruyor.

Aynı sayfa daha da net bir ifade kullanıyor: bir SQL Server veritabanıyla iletişim kuran bütün araçlar ve uygulamalar bunu T-SQL komutları göndererek yapıyor.

Yani arayüzden tıkladığınız her işlem de sonuçta bu dile çevriliyor. Sorgu dilinin kendisini SQL yazımızda ele almıştık; T-SQL o dilin belirli bir ürün ailesindeki hâli.

Nerelerde geçerli?​


Başvuru sayfası kapsamı ürün ürün sayıyor. Belgeler SQL Server, Azure SQL Database, Azure SQL Managed Instance, Azure Synapse Analytics ve Analytics Platform System için geçerli sayılıyor; Microsoft Fabric tarafındaki SQL analiz uç noktası, ambar ve SQL veritabanı da listede.

Bir uyarı da var: her makalenin başında hangi ürün ve hizmetlerin o konuyu desteklediğini gösteren bir bölüm bulunuyor. Bazı durumlarda makale bir üründe geçerli olsa bile bütün argümanları desteklenmiyor, bu da metnin içinde ayrıca belirtiliyor.

  • Sunucu: SQL Server (Windows ve Linux sürümleri).
  • Bulut: Azure SQL Database, Managed Instance, Synapse Analytics.
  • Analitik: Microsoft Fabric tarafındaki ambar ve uç noktalar.

Verinin raporlanmaya gittiği tarafı Power BI yazımızda anlatmıştık; oradaki sorguların çoğu da bu dille kuruluyor.

Standarda ne ekliyor?​


Sıradan bir SELECT ifadesi her yerde benzer görünüyor. Ayrım, dilin üstüne eklenen akış denetimi ögelerinde başlıyor.

Akış denetimi sayfası anahtar kelimeleri sayıyor: BEGIN...END, RETURN, BREAK, THROW, CONTINUE, TRY...CATCH, GOTO, WAITFOR, IF...ELSE ve WHILE.

Bu liste, T-SQL'i tek başına bir sorgu dili olmaktan çıkarıp yordam yazılabilen bir dile dönüştürüyor. Koşul kurabiliyor, döngü yazabiliyor, hata yakalayabiliyor ve işlemi belirli bir süre bekletebiliyorsunuz.

Pratikte bunun anlamı şu: karmaşık bir iş kuralını uygulamaya taşımak yerine veritabanı tarafında bir yordam olarak yazabiliyorsunuz.

Listedeki ögelerin çoğu tanıdık gelecektir. BEGIN...END birden çok ifadeyi tek bir blok hâlinde toplarken, IF...ELSE koşula göre dallanmayı, WHILE ise yinelemeyi sağlıyor. BREAK ve CONTINUE döngünün akışına müdahale ediyor, RETURN yordamdan çıkıyor.

Hata yönetimi tarafında iki anahtar kelime öne çıkıyor: TRY...CATCH hatayı yakalayıp işlemeye, THROW ise hatayı yeniden yükseltmeye yarıyor. Zamanlama gerektiren durumlarda WAITFOR devreye giriyor.

Bu ögeler standart sorgu diline özgü değil; her üreticinin kendi eklediği katmanın parçası. Sorgunuz bir sistemden öbürüne taşındığında ilk kırılan yer de burası oluyor.

Püf nokta' Alıntı:
Taşınabilirlik önemliyse akış denetimi ögelerini uygulama katmanında tutun; onlar lehçeye en çok bağlı kısım.

Başka sistemlerdeki karşılığı​


Aynı ihtiyaç her veritabanında var, çözüm adı değişiyor. PostgreSQL'in yordamsal diller belgesi mekanizmayı anlatıyor: sunucu, başka dillerde yazılmış işlevleri, o dilin ayrıntılarını bilen ve işlevin kaynak kodunu yorumlayan özel bir işleyici aracılığıyla tanıyor.

Belge standart dağıtımla gelen dilleri de sayıyor: PL/pgSQL, PL/Tcl, PL/Perl ve PL/Python. Yani PostgreSQL tarafında yordam yazmak isteyen kişi bu dillerden birini seçiyor.

Oracle tarafındaki karşılığı olan saklı yordam ve tetikleyici düzenini PL/SQL yazımızda ele almıştık. Üç dil de aynı boşluğu dolduruyor: sorgu diline karar verme ve yineleme yeteneği eklemek.

Hangi araçlar bu dili gönderiyor?​


Başvuru sayfası, T-SQL komutu gönderen Microsoft araçlarını da sıralıyor: SQL Server Management Studio, Visual Studio Code için MSSQL uzantısı, SQL Server Data Tools ve komut satırı aracı sqlcmd.

Aynı sayfa en sık kullanılan ifadeleri de gösteriyor: SELECT, INSERT, UPDATE ve DELETE. Bu dördü her lehçede benzer çalıştığı için taşınabilirliğin en yüksek olduğu bölge de burası.

Sık Sorulan Sorular​


T-SQL nedir?
Transact-SQL'in kısaltması; Microsoft'un SQL ürün ve hizmetlerinin merkezinde duran sorgu ve yordam dili.

T-SQL ile SQL aynı şey mi?
Değil. T-SQL, sorgu dilinin üstüne akış denetimi ögeleri ekleyen ürün ailesine özgü bir lehçe.

Hangi ürünlerde geçerli?
SQL Server, Azure SQL Database, Azure SQL Managed Instance, Azure Synapse Analytics, Analytics Platform System ve Microsoft Fabric tarafındaki hizmetler.

Akış denetimi ögeleri hangileri?
BEGIN...END, RETURN, BREAK, THROW, CONTINUE, TRY...CATCH, GOTO, WAITFOR, IF...ELSE ve WHILE.

PostgreSQL'de karşılığı ne?
Yordamsal diller; standart dağıtımla PL/pgSQL, PL/Tcl, PL/Perl ve PL/Python geliyor.

Özetle​


T-SQL, standart sorgu dilinin Microsoft ürünlerindeki lehçesi. Bir SQL Server veritabanına giden her komut sonuçta bu dile dönüşüyor. Farkı asıl yaratan kısım akış denetimi anahtar kelimeleri: koşul, döngü, hata yakalama ve bekletme. Aynı boşluğu PostgreSQL yordamsal dillerle, Oracle ise kendi yordam diliyle dolduruyor. Sorgunuzu taşınabilir tutmak istiyorsanız ayrım noktası tam olarak burası.

Yazdığınız sorguların hangileri lehçeye bağlı, hangileri her sistemde çalışır durumda?

Güncelleme: 5 Eylül 2026. Microsoft Learn Transact-SQL başvurusu ile akış denetimi sayfası ve PostgreSQL yordamsal diller belgesi kontrol edildi.



Dijital Dünyanıza Yön Veren Pusula
 

Ekli dosyalar

  • banner_10.jpg
    banner_10.jpg
    5.1 KB · Görüntüleme: 1
Geri
Üst