我有一个标量值函数,func-A和内联表值函数func-B。 func-A再次调用func-B和func-B调用func-A。但递归级别永远不会太深。它必须始终为2级。例如,func-A调用func-B。并且func-B再次调用func-A,这将是结束。
这在我的本地SQL Server 2008 R2上运行正常但在生产服务器上失败。错误消息显示“超出最大存储过程,功能,触发器或视图嵌套级别(限制32)。”。但奇怪的是,在生产服务器上,此问题仅发生在某些数据库实例上。有些情况下工作正常。
我如何克服这个问题? (我想我可能需要打开一些选项,比如“RECURSIVE_TRIGGERS”。)在此先感谢。
答案 0 :(得分:0)
以下是诊断递归调用的一些简单步骤:
这将显示UDF中的各个语句正在执行,允许您回家路径。另一种选择是简单地编辑过程以在顶部打印参数,这样您就可以在数据级别上处理递归深度问题。