Есть ли способ войти в код хранимой процедуры в SQL Server Management Studio? Я знаю, что это возможно с помощью Visual Studio, но я ищу надежное решение для отладки из Management Studio
Отладка хранимых процедур в студии управления
Ответ 1
Только с SQL 2008 и SSMS 2008. Выберите из меню "Отладка/Начать отладку" или нажмите Alt + F5 и запустите пошаговый отладчик T-SQL.
В 2005 году единственный способ - подключить Profiler и отслеживать событие SP: StmtCompleted, которое поэтапно не отлаживает отладчик, но по крайней мере вы увидите поток выполнения. Очевидно, что это не делается на производственной машине.
Ответ 2
Я написал здесь довольно подробное сообщение в блоге:
В основном суть этого заключается в том, что вы вводите свой sql-запрос для выполнения хранимой процедуры, а вместо нажатия F5 или нажатия восклицательного знака нажмите кнопку воспроизведения и используйте F10 и F11 для перехода и перейдите в ваши сохраненные процедуры.
Это очень удобно, но никто не использует его.
Ответ 3
Возможность отладки sprocs, которая была в Query Analyzer в SQL Server 2000, не была помещена в SQL Server 2005. Microsoft реализовала эту ошибку и вернула функциональность в SQL Server 2008.
В SSMS 2008 вы можете запустить отладчик, нажав кнопку отладки на панели инструментов или нажав ALT + F5.
К сожалению, запуск SSMS 2008 против базы данных 2005 года не позволит вам отлаживать, поэтому вам придется придерживаться Visual Studio.
Ответ 4
Следите за отладки хранимых процедур с помощью Visual Studio. Способ, которым это реализовано, - использовать невероятную блокировку, чтобы вы никогда не делали этого в производственной системе.
Ответ 5
Да, в SSMS 2008 вы, безусловно, можете войти в код T-SQL (кодовый блок, сохраненный func, хранимый proc) и отладить его.
Подробнее см. в этой замечательной статье Улучшения Management Studio в SQL Server 2008 - это также касается отладки (в конце статьи).
Ответ 6
Помните, что при отладке удаленных экземпляров с помощью SSMS ваш серверный и клиентский брандмауэр должен будет разрешать sqlservr.exe и ssms.exe соответственно, а также порт tcp 135. Брандмауэр клиента в моем конкретном случае вызывал "истечение времени ожидания" "при попытке отладки.