SQL Server Management Studio (SSMS) üzerinde T-SQL Debugging (hata ayıklama), karmaşık scriptlerin mantığını çözmek ve hataları anında tespit etmek için paha biçilemez bir araçtır.
SQL Server’da Debug işlemi, yazdığınız bir kod bloğunu (Stored Procedure, Function veya Trigger) satır satır çalıştırarak değişkenlerin o anki değerlerini izlemenize olanak tanır. Genellikle yazılım geliştirme dillerinden (C#, Java vb.) aşina olduğumuz bu özellik, SQL tarafındaki karmaşık mantık hatalarını bulmak için kullanılır.
SSMS içinde yerleşik olarak gelen bu özellik, kodun sadece sonucuna odaklanmak yerine, o sonuca giden yolda verinin nasıl değiştiğini görmemizi sağlar.
Bir DBA veya Veritabanı Geliştiricisi için Debugger’ın sağladığı temel faydalar şunlardır:
- @Isim gibi tanımladığınız değişkenlerin, döngüler veya şartlı ifadeler (IF-ELSE) içinde hangi değerleri aldığını anlık olarak görebilirsiniz.
- Kodun tamamını bir kerede çalıştırmak yerine, F11 tuşu ile satır satır ilerleyerek hangi satırda hata oluştuğunu veya mantığın nerede saptığını bulabilirsiniz.
- Binlerce satırlık bir Stored Procedure içinde hatanın tam olarak hangi noktada fırlatıldığını (Exception) belirlemek için kullanılır.
- Özellikle iç içe geçmiş döngülerde veya karmaşık JOIN işlemlerinde, verinin her adımda doğru filtrelenip filtrelenmediğini kontrol edebilirsiniz.
Not: SQL server Debug özelliği SSMS 18 sürümünden sonra kaldırılmıştır. Modern geliştirme standartlarına uymadığı ve performans sorunları yaratığı gerekçesiyle ssms’den çıkardı. Bu işlemlerin alternatifi olarak Azure Data Studio ve Sql Server Data Tools önerilerinde bulunmuştur. Belirtilen uygulamalarda da aynı ifadelerle işlemler yapabilirsiniz.
DECLARE @Isım NVARCHAR(100)='yunus'
Select @Isım

f11 tuşuna bastığımızda debug işlemi başlattığımız gibi yukarıdaki resimde bulunan Debug butonuylada başlatılabilir.

F11 tuşuna bastığımızda yukarıda sarı ok ifadesinin adım adım gittiği görülmektedir. Select @Isım adımından sonra kodumuz kalmadığı için Debug işlemi sonlanmaktadır.
Not: F10 (Step Over) bir alt prosedüre girmeden o satırı geçer.

İlgili ifade seçildikten sonra değişkene tanımlanan değerin hangi değer olduğu görülmektedir.
Yukarıda belirtilen kodumuzun çok uzun olduğunu farz edelim F11 tuşuna basıp adım adım ilgili değere gitmeden istediğimiz değere ulaşabiliriz. Bunun için Debug işlemini başlattıktan sonra breakpoint koymak istediğimiz satırın başına mouse’un sol tuşuna basarak işaretimizi yerleştirmiş oluyoruz.

Yukarıdaki işlemden sonra Debug işleminden çıkılır. Tekrardan yukarıdaki kodumuzu çalıştırmak için F11 veya Debug butonuna tıkladığımızda gelen ekranda oluşturduğumuz breakpoint‘e hemen ulaşmak için alt+F5 tuşuna basılır. Yüzlerce satırlık kodda çok işimize yarayacak bir özelliktir.
F11 butonuna basılır:

alt+f5 ile breakpoint konulan ifadeye gidilir.

Breakpoint‘ten önceki tüm değerlerde gelmektedir.

T-SQL Debugging, “Körlemesine kod yazma” devrini kapatan bir araçtır. Özellikle büyük veri tabanı sistemlerinde ve kritik iş süreçlerinde, bir hatayı canlı sistemde aramak yerine Debugger kullanarak kontrollü bir ortamda çözmek hem zaman kazandırır hem de veri bütünlüğünü korur. SSMS üzerinden bu aracı etkili kullanmak, her SQL geliştiricisinin yetkinlik setinde bulunması gereken temel bir beceridir.
Not: SSMS’in 18.x sürümünden itibaren Microsoft, yerel T-SQL Debugger desteğini kaldırmıştır. Eğer bu sürümü veya daha yenisini kullanıyorsan, Debug işlemleri için genellikle SQL Server Data Tools (SSDT) veya Visual Studio kullanımı önerilmektedir.
Başka makalede görüşmek dileğiyle..
Şüphesiz iman edenler, hicret edenler ve Allah yolunda cihad edenler; işte onlar, Allah’ın rahmetini umabilirler. Allah bağışlayandır, esirgeyendir. Bakara Suresi, 218. Ayet