如何调试从SQL Server 2008中的Service Broker队列运行的存储过程?

时间:2011-10-09 15:44:05

标签: sql-server-2008 debugging service-broker

我有一个带有复杂触发器的表,最终调用Service Broker来运行一个带有表(自定义类型)参数的存储过程。

我可以“进入”INSERT和触发器,但我无法进入服务代理存储过程,因为据我所知它运行异步。

有没有办法进入Service Broker运行并调试它的存储过程?

感谢。

2 个答案:

答案 0 :(得分:9)

要调试它(使用管理工作室调试器),您可以更改队列以关闭激活。

ALTER QUEUE queue_name 
WITH ACTIVATION (STATUS = OFF); 

运行insert语句然后运行&手动调试激活过程就像使用任何存储过程一样。 这样,在调试时队列中会有一些东西。 然后在完成后使用STATUS = ON恢复激活。

答案 1 :(得分:0)

我知道这已经过时了但也许别人有这个问题。

您可以使用SQL事件探查器来捕获发生错误的行号和proc。如果您使用Print语句,它们将显示在分析器中。