SQL Server调试全解析
1. 递归调用限制问题
在进行递归调用时,如果使用 @ValueIn 为 5 运行相关代码,会得到预期的结果 15,如下所示:
5 Triangular is 15
然而,当 @ValueIn 的值超过 32 时,会出现错误:
Msg 217, Level 16, State 1, Procedure spTriangular, Line 10
Maximum stored procedure, function, trigger, or view nesting level exceeded
(limit 32).
对于这个问题,除非能将递归调用进行分段处理(即运行 32 层深度后,从调用栈返回,再重新开始),否则很难解决。需要注意的是,大多数递归函数都可以重写为标准的循环结构,循环结构没有这样的硬限制。在使用递归之前,应先考虑是否可以使用循环。
2. 调试功能的发展历程
- SQL Server 2000 时,Management Studio 有真正的调试工具,但使用起来有点笨拙,主要针对存储过程进行调试(无法直接调试脚本,调试触发器需要创建一个能触发该触发器的存储过程),不过通过一些变通方法,还是能实现调试。
- SQL Server 2005 移除了 Management Studio 中的所有调
超级会员免费看
订阅专栏 解锁全文

2万+

被折叠的 条评论
为什么被折叠?



