查找存储过程中的错误位置

            前两天为用友二次开发的一个项目查询数据报错,这个查询是通过一个主存储过程调用三个自定义函数,TSQL代码很多,而且用到很多循环递归,查询分析器报的错误地址在一个递归的入口,设断点跟踪了几次,因为太长了,未果。今天看了鞠强的 SQL Server性能调优入门(图文版) ,有些心得,利用SQLServer的事件探查器终于找到错误位置。
            首先通过事件探查器建立一个跟踪,跟踪属性中常规选项卡采用默认设置,事件选项卡只保留存储过程并加入SP:stmtCompleted和SP:stmtStarting,结果如下图:

在筛选选项卡中设定好SPID,点击运行。
            然后在查询分析器中执行出错的存储过程,报错结束后由最后开始找到只有Starting而没有Completed的语句就是我们要找的。
            剩余的事情就简单了,在出错位置设好断点,获取出错时变量的值,就可以找到错误的原因了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值