我有一个带有复杂触发器的表,最终调用Service Broker来运行一个带有表(自定义类型)参数的存储过程。
我可以“进入”INSERT和触发器,但我无法进入服务代理存储过程,因为据我所知它运行异步。
有没有办法进入Service Broker运行并调试它的存储过程?
感谢。
答案 0 :(得分:9)
要调试它(使用管理工作室调试器),您可以更改队列以关闭激活。
ALTER QUEUE queue_name
WITH ACTIVATION (STATUS = OFF);
运行insert语句然后运行&手动调试激活过程就像使用任何存储过程一样。
这样,在调试时队列中会有一些东西。
然后在完成后使用STATUS = ON
恢复激活。
答案 1 :(得分:0)
我知道这已经过时了但也许别人有这个问题。
您可以使用SQL事件探查器来捕获发生错误的行号和proc。如果您使用Print语句,它们将显示在分析器中。