Как я могу отладить хранимую процедуру, запущенную из очереди компонента Service Broker в SQL Server 2008? - PullRequest
4 голосов
/ 09 октября 2011

У меня есть таблица со сложным триггером, который в конце концов вызывает Service Broker для запуска хранимой процедуры с параметром, который является таблицей (пользовательский тип).

Я могу «войти» в INSERT итриггер, но я не могу войти в хранимую процедуру компонента Service Broker, поскольку, насколько я понимаю, она запускается асинхронно.

Есть ли способ задействовать хранимую процедуру, которую выполняет компонент Service Broker, и отладить ее?

Спасибо.

Ответы [ 2 ]

10 голосов
/ 09 октября 2011

Чтобы отладить его (используя отладчик студии управления), вы можете изменить очередь, чтобы отключить активацию.

ALTER QUEUE queue_name 
WITH ACTIVATION (STATUS = OFF); 

запустите оператор вставки, затем запустите и отладьте процедуру активации вручную, как и в случае любой хранимой процедуры.Таким образом, в процессе отладки будет что-то в очереди.Затем, когда закончите, используйте STATUS = ON для восстановления активации.

0 голосов
/ 21 июня 2017

Я знаю, что это старый, но, возможно, у кого-то еще есть эта проблема.

Вы можете использовать SQL Profiler для определения номера строки и процедуры, в которой происходит ошибка.Если вы используете операторы Print, они будут отображаться в профилировщике.

...