2009-12-08 6 views
0

У меня есть проект Visual Studio .Net, который использует ADO-соединение для вызова хранимой процедуры базы данных SQL Server.Отладка SQL Server 2008

Возможно установить перебор в хранимой процедуре и отладить ее. У меня есть локальный SQL Server и SQL Enterprise Edition.

+0

Вы говорите об отладке собственно хранимой процедуры? и является ли управляемый код хранимой процедуры или TSQL? –

+0

2 agent Я думаю, что это TSQL. Он хранится на стороне БД Процедура ALTER [aaa]. [My_Proc] начало ... –

ответ

1

AFAIK, и если вы говорите о фактической T-SQL хранимой процедуры, Лучше всего будет:

  1. выяснить, какие параметры вы передаете в хранимую процедуру, когда (если?) Это приводит к проблемы
  2. Извлеките фактический код SQL из тела хранимой процедуры и скопируйте его в новое окно анализатора запросов,
  3. Запустите этот скрипт со значениями из # 1.
+0

проблема заключается в том, что один SP вызывается, когда его не должно быть. Мне нужно «поймать», кто называет его –

+0

Ahhh, ну да, вы можете поставить точку останова в свой код и сделать это таким образом. Есть ли у вас идея *, где * в коде, из которого может вызываться звонок *? Если нет, вам может потребоваться много работы F10, но вы найдете его в конце концов. Это может помочь открыть и запустить SQL Server Profiler во время работы. – peacedog

+0

Конечно, я знаю этот путь. Но мой вопрос заключался в том, что на SQL-сервере есть режим отладки, где я могу установить точку останова с помощью SSMS и дождаться, пока какое-то приложение запускает его –

1

Есть несколько вариантов, о которых я слышал для отладки хранимых процедур - например: Прямая отладка базы данных.

вот ссылка из хорошей статьи я нашел объяснение некоторых из них: Stored Proc Debugging Methods

1

Вы можете процедуры CLR отладки и функции от VS, см Debugging SQL

Transact-SQL это другая история, она должна специальные этапы настройки и могут быть отлажены с помощью специального инструмента, см. Using the Transact-SQL Debugger.

1

Используйте Профайлер SQL Server (в меню «Сервис» в SQL Server Management Studio), чтобы увидеть точные вызовы, отправляемые из ADO в процедуры базы данных. Затем вы можете выяснить, где проблема, и начать отладку, будь то в SSMS или Visual Studio.

0

Я настоятельно рекомендую вам взглянуть на встроенный инструмент в студии управления SQL.

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

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

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

Очень удобно, и никто, кажется, не использует его.