【发布时间】:2011-10-09 15:44:04
【问题描述】:
我有一个带有复杂触发器的表,该触发器最终调用 Service Broker 以运行带有参数的存储过程,该参数是表(自定义类型)。
我可以“步入”INSERT 和触发器,但我不能步入服务代理存储过程,因为据我所知,它是异步运行的。
有什么方法可以利用 Service Broker 运行的存储过程并对其进行调试?
谢谢。
【问题讨论】:
标签: sql-server-2008 debugging service-broker
我有一个带有复杂触发器的表,该触发器最终调用 Service Broker 以运行带有参数的存储过程,该参数是表(自定义类型)。
我可以“步入”INSERT 和触发器,但我不能步入服务代理存储过程,因为据我所知,它是异步运行的。
有什么方法可以利用 Service Broker 运行的存储过程并对其进行调试?
谢谢。
【问题讨论】:
标签: sql-server-2008 debugging service-broker
要调试它(使用管理工作室调试器),您可以更改队列以关闭激活。
ALTER QUEUE queue_name
WITH ACTIVATION (STATUS = OFF);
运行插入语句,然后手动运行和调试激活过程,就像使用任何存储过程一样。
这样在调试时队列中就会有一些东西。
然后在完成后使用STATUS = ON 恢复激活。
【讨论】:
我知道这是旧的,但也许其他人有这个问题。
您可以使用 SQL Profiler 捕获发生错误的行号和进程。如果您使用 Print 语句,那么它们将显示在分析器中。
【讨论】: