我有一个 CTE 正在做一些递归。想象问题空间的最简单方法是在世界各地的汽车中使用的电阻器,并且您拥有所有这些信息。电阻器 A 用于板 B 和 C,用于 DashAssembly D、E、F...ZZ,用于汽车 AAA、AAB 和 AAC。
我让 CTE 与一个零件一起工作,检查了结果,一切都很好(使用 100 的 MAXRECURSION)。然后我添加了一个在零件树中更常见的零件。轰,坏了。我尝试将 MAXRECURSION 提高到 32767,但它仍然坏了。查看数据,这个特定的部分被到处使用。在第二级递归中,它有 426 个父级。依此类推,我认为是 6 级递归。这是有道理的(我认为)这是轰炸MAXRECURSION。
下一个问题是,B计划是什么?我从来没有做过任何不使用 CTE 的递归。
更新:答案是:确保你没有任何循环引用,并确保你的递归表正确过滤了它的连接(我没有正确地做第二个)。基本上我搞砸了,并认为我的问题是我疯狂的狂野数据,而不是我蹩脚的 sql 技能。