SQL Server 2012 'de T-SQL Debugging
SQL Server 2012 ile birlikte Visual Studio entegrasyonu artık tam anlamıyla sağlanmış durumda. SQL Server 2008 ‘de T-SQL code’umuzu debug yapmak istediğimizde Visual Studio’daki her ozelliği kullanamıyorduk. Örneğin code üzerinde belirttiğimiz Breakpoint’lere condition ekleyemiyor ve Breakpoint’lerimizi filtreleyemiyorduk. SQL Server 2012 ile birlikte artık debugging tam anlamıyla Visual Studio’da ki gibi SQL Developer’lar için conditional base kullanılabilecek hale getirildi.
SQL Server 2012 ile geliştirilen debugging’de neler yapabiliyoruz örnekler ile inceleyelim.
İlk olarak bir test tablosu ve random tarih üretelim;
IF EXISTS (SELECT * FROM [AdventureWorks2012].[dbo].[sysobjects] WHERE id = OBJECT_ID(N'[AdventureWorks2012].[dbo].[TestTable]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [AdventureWorks2012].[dbo].[TestTable]
GO
CREATE TABLE [AdventureWorks2012].[dbo].[TestTable]
(
[ID] [int] IDENTITY(1,2) NOT NULL,
[Date] [datetime] NOT NULL
) ON [PRIMARY]
DECLARE @RowCount INT
DECLARE @InsertDate DATETIME
SET @RowCount = 0
WHILE @RowCount < 500
BEGIN
SET @InsertDate = DATEADD(DD, (ROUND((((-1) - (-730) -1) * RAND() + (-730)), 0)), GETDATE())
INSERT INTO [AdventureWorks2012].[dbo].[TestTable](Date) VALUES(@InsertDate)
SET @RowCount = @RowCount + 1
END
Üzerinde çalışacağımız code bloğumuzu tanımlıyoruz;
DECLARE @Counter INT = 1
WHILE (@Counter BETWEEN 0 AND 10)
BEGIN
SELECT * FROM [AdventureWorks2012].[dbo].[TestTable]
WHERE ID = @Counter
SET @Counter = @Counter + 1
END
Debug menüsünden Start Debugging ‘e tıklayarak veya ALT+F5 yaparak Debug ekranımızı açıyoruz.

Yazdığımız code’da 1 ‘den 10 kadar ID’leri table ID’si ile karşılaştırıp mevcut olanlara SELECT çekiyoruz. Burada SELECT ifademizin üzerine gelip F9‘a basıp breakpoint koyuyoruz.

ID üzerinde çalıştığımızdan belirttiğimiz ID ‘ye geldiğinde sorgu bloğumuzun durmasını ve belirttiğimiz ID’yi görmek istiyorsak, Breakpoint’imizin üzerine sağ tıklayıp Condition ‘a giriyoruz.

Condition ekranında declare ettiğimiz @Counter değerini 7 olarak set ediyoruz.

Condition değerimizi Is true olarak set ettikten sonra OK ‘e tıklıyoruz ve karşımıza Breakpoint’imizin ne şekilde durdurulmasını ayarlayacağımız ekran geliyor. Burada break when the hit count is equal to diyip OK ‘e tıklıyoruz.

Eğer belirttiğimiz ID ‘ye geldiğinde code’umuzu pause ettirmek istiyorsak bunun için Breakpoint’imize sağ tıklayıp Hit Count diyoruz.

Son olarak ALT+F5 yapıp query’mizi devam ettirip pause olduğunu görüyoruz.
