Подтвердить что ты не робот

Отладка хранимой процедуры в SQL Server 2008

Есть ли способ отладки хранимой процедуры на SQL Server 2008?

У меня есть доступ к использованию SQL Server Management Studio 2008 и Visual Studio 2008 (не уверен, обеспечивает ли эта функция).

Как правило, я использую профилировщик SQL для поиска параметров, переданных в хранимый процесс, но хотел бы пройти процедуру, чтобы увидеть, где она не работает.

Возможно ли это?

Каков наилучший способ? (с точки зрения быстрого поиска местоположения ошибок)

4b9b3361

Ответ 1

Хорошо, что ответ сидел прямо передо мной все время.

В SQL Server Management Studio 2008 на панели инструментов есть кнопка "Отладка". Установите точку перерыва в окне запроса для перехода.

Я отклонил эту функциональность в начале, потому что я не думал о том, чтобы войти в хранимую процедуру, что вы можете сделать с легкостью.

SSMS в основном делает то, что FinnNK упоминает в прохождении MSDN, но автоматически.

Так просто! Спасибо за помощь FinnNK.

Изменить: Я должен добавить шаг туда, чтобы найти вызов хранимой процедуры с параметрами, которые я использовал SQL Profiler в моей базе данных.

Ответ 2

Да, вы можете (если у вас есть хотя бы профессиональная версия визуальной студии), хотя она требует небольшой настройки, как только вы это сделали, она не сильно отличается от кода отладки. MSDN имеет базовое пошаговое руководство.

Ответ 3

  • Да, хотя работать с отладкой может быть сложно, особенно если вы пытаетесь отлаживать SQL на удаленном SQL-сервере с вашей собственной машины разработки.
  • В первом случае я рекомендовал бы, если это возможно, выполнить эту работу путем отладки непосредственно на сервере.
  • Войдите на SQL-сервер, используя учетную запись с правами sysadmin или попросите своего администратора базы данных сделать это.
  • Затем для вашей собственной учетной записи Windows создайте "login" на SQL Server, если он еще не существует:

enter image description here

  • Щелкните правой кнопкой мыши учетную запись > свойства - убедитесь, что логин является членом роли "sysadmin":

enter image description here

  • (также убедитесь, что учетная запись является "владельцем" любых баз данных, которые вы хотите отлаживать скрипты (например, хранимые procs) для:

enter image description here

  • Затем войдите непосредственно на SQL-сервер, используя свою учетную запись Windows.
  • Войдите в SQL Server с помощью проверки подлинности Windows (используя учетную запись, которую вы только что использовали для входа на сервер)
  • Теперь отлаживаем запрос в студии управления SQL, устанавливая точки останова по мере необходимости. Вы можете войти в хранимые процедуры с помощью F11:

enter image description here

  • Вот полезное руководство по отладке:

http://blogs.msdn.com/b/billramo/archive/2009/04/11/transact-sql-debugger-for-sql-server-2008-part-1.aspx

  • Если вам нужно удаленно отлаживать, то, как только вы заработаете эту часть, вы можете попробовать настроить удалённую отладку:

http://blogs.msdn.com/b/billramo/archive/2009/04/11/transact-sql-debugger-for-sql-server-2008-part-2.aspx

Ответ 4

Одним из требований для удаленной отладки является то, что учетная запись Windows, используемая для запуска SSMS, является частью роли sysadmin. См. Эту ссылку MSDN: http://msdn.microsoft.com/en-us/library/cc646024%28v=sql.105%29.aspx