Отладка хранимых процедур в SQL Server Management Studio - PullRequest
41 голосов
/ 07 января 2010

Есть ли способ войти в код хранимой процедуры в SQL Server Management Studio? Я знаю, что это возможно в Visual Studio, но я ищу надежное решение для отладки из Management Studio

Ответы [ 6 ]

26 голосов
/ 07 января 2010

Только для SQL 2008 и SSMS 2008. Выберите в меню «Отладка \ Начать отладку» или нажмите Alt + F5 и запустите пошаговый отладчик T-SQL.

В 2005 году единственный способ - подключить Profiler и монитор для события SP: StmtCompleted , которое не является пошаговым отладчиком, но, по крайней мере, вы увидите поток выполнения. Очевидно, этого нельзя делать на производственной машине.

23 голосов
/ 30 ноября 2010

Я написал довольно подробный пост в блоге об этом здесь:

http://www.diaryofaninja.com/blog/2010/11/23/debugging-sql-queries-function-amp-stored-procedures-with-sql-management-studio

По сути, суть в том, что вы вводите свой SQL-запрос для выполнения хранимой процедуры, и вместо нажатия F5 или нажатия восклицательного знака вы нажимаете кнопку воспроизведения и используете F10 и F11 , чтобы пройти и войти в свои сохраненные процессы.

Это очень удобно, но, похоже, никто не использует его.

4 голосов
/ 07 января 2010

Остерегайтесь отладки хранимых процедур с помощью Visual Studio. Способ, которым это реализовано, заключается в использовании невероятного количества блокировок, чтобы вы никогда не делали этого в производственной системе.

4 голосов
/ 07 января 2010

Возможность отладки sprocs, которая была в Query Analyzer в SQL Server 2000, не была включена в SQL Server 2005. Microsoft осознала эту ошибку и вернула эту функциональность обратно в SQL Server 2008.

В SSMS 2008 вы можете запустить отладчик, нажав кнопку отладки на панели инструментов или нажав ALT + F5.

К сожалению, запуск SSMS 2008 для базы данных 2005 года не позволит вам выполнить отладку, поэтому вам придется придерживаться Visual Studio.

3 голосов
/ 07 января 2010

Да, в SSMS 2008 вы определенно можете перейти к коду T-SQL (блок кода, сохраненный func, сохраненный proc) и отладить его.

См. Эту превосходную статью Усовершенствования Management Studio в SQL Server 2008 для получения подробной информации - он также касается отладки (ближе к концу статьи).

1 голос
/ 11 июля 2011

Обратите внимание, что при отладке удаленных экземпляров с помощью SSMS вашему серверу и клиентскому брандмауэру потребуется разрешить соответственно sqlservr.exe и ssms.exe вместе с tcp-портом 135. В моем конкретном случае клиентский брандмауэр вызывал «время ожидания истекло "при попытке отладки.

...