Здравствуйте, друзья! Давненько не писал в свой блог, и это было тяжело :) Первый CTP SQL Server 2011 (кодовое имя "Denali") вышел уже месяц назад, а у меня всё никак небыло времени рассказать о нём. В этом и в следующих постах этой серии я планирую рассказать о тех возможностях которые появились в SQL Server "Denali" CTP1 и будут появляться в следущих CTP. И первый в очереди на описание – отладчик T-SQL кода.
Возможность отладки кода появилась ещё в SQL Server 2008, в 2008 R2 здесь ничего не поменялось, а вот в "Denali" да! Точки останова стали больше похожи на их аналоги в Visual Studio. Появилась возможность задавать условие срабатывания, фильтр, количество попаданий и много другое. В сравнении со старым вариантом это выглядит примерно так:
Почитать о том как это использовать можно в цикле статей How to: How to: Specify a Breakpoint Condition, How to: Specify a Hit Count, How to: Specify a Breakpoint Filter, How to: Specify a Breakpoint Action, How to: Edit a Breakpoint Location.
Но что меня больше всего порадовало так это частичная поддержка T-SQL выражений в окошке Quick Watch. В SQL Server 2008 и 2008 R2 в них можно было просматривать только значение переменных. В SQL Server "Denali" всё намного лучше. Теперь мы можем просматривать результат T-SQL запроса в том случае, если он заведомо возвращает скалярное значение. Например результат выполнения вот такого запроса мы легко можем просмотреть, используя Quick Watch, или добавить на панель Watch:
SELECT TOP(1) Point FROM [dbo].[Actions]
К сожалению просмотра набора значений пока нет, как нет и просмотра выборки по нескольким полям. На эту тему есть ряд предложений на Microsoft Connect и я надеюсь что их примут во внимание и к релизу что-то из этого уже будет готово:
Умный Intellisense не даст теперь поставить точку останова там, где этого нельзя сделать. Раньше это выглядело намного веселее :) Сам только заметил, но можно было расставить брэйкпоинты так:
И напоследок хочу напомнить, что отладчик является фичей именно Management Studio, поэтому с новой SSMS вы можете отлаживать код и на инстансах более старых версий SQL Server (начиная с SQL Server 2005 Service Pack 2).
Ссылки по теме: