none
有什么方法可以突破SQL实现递归的层数限制? RRS feed

  • 问题

  • 如题,一般是调用存储过程实现递归,但是 嵌套的层数不能超过32,否则会返回下面的错误。有没有什么方法可以突破这个限制?

    Msg 217, Level 16, State 1, Procedure spFatorial, Line 16
    Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 32).

    2010年4月12日 6:55

答案

  • sql 递归的效率很低

    为啥不更换其他方式实现?

    比如临时表等。

    或者使用while来实现模拟递归,只要条件满足可以一直循环执行下去。

     


    family as water
    • 已标记为答案 Chong Wang 2010年4月13日 2:19
    2010年4月12日 13:00
  • 没办法,嵌套层数最大是32,

    CTE的递归层数默认是100,这个是可以调整的


    有dba的职位吗(北京的),请联系我 stswordman#hotmail.com
    • 已标记为答案 Chong Wang 2010年4月13日 2:19
    2010年4月12日 21:15
    版主

全部回复

  • sql 递归的效率很低

    为啥不更换其他方式实现?

    比如临时表等。

    或者使用while来实现模拟递归,只要条件满足可以一直循环执行下去。

     


    family as water
    • 已标记为答案 Chong Wang 2010年4月13日 2:19
    2010年4月12日 13:00
  • 没办法,嵌套层数最大是32,

    CTE的递归层数默认是100,这个是可以调整的


    有dba的职位吗(北京的),请联系我 stswordman#hotmail.com
    • 已标记为答案 Chong Wang 2010年4月13日 2:19
    2010年4月12日 21:15
    版主