当外部进程调用存储过程时,使用SQL调试器

时间:2018-04-18 13:58:12

标签: sql-server

是否有类似SQL调试器的“调试附加”?我有一个中间件工具(BizTalk)调用存储过程,并希望调试它。

作为替代方案,我尝试添加语句以插入跟踪表,但BizTalk在失败时回滚事务。我添加了print语句,但在外部运行时无法看到它们。我一直在使用SQL_profiler,这有点帮助,但看不到变量的值。

根据@Jeroen评论,我尝试了sp_trace_generatedevent,但只在分析器中看到了这一点。我对我的DBName进行了过滤,并打开了所有userConfigureable事件。 enter image description here

1 个答案:

答案 0 :(得分:0)

sp_TraceGenerateEvent可用于将数据写入探查器。 (此处使用示例:https://blogs.technet.microsoft.com/fort_sql/2012/06/21/capture-custom-events-in-profiler-for-troubleshooting/

请注意,当BizTalk调用存储过程时,它有两次传递,一次使用FmtOnly = On,第二次(实际执行)使用FmtOnly = Off。如果您在第一次通过时遇到某些错误,则可能无法到达第二次通过。 Getting sp_tracegenerateevent to work in a stored procedure

当FmtOnly = On时,跟踪配置文件可能会令人困惑,当您只是检查将返回哪些数据/列时,会让您相信它正在运行。 Can SQL Begin Try/Catch be lying to me (in the profiler)?