+ -
当前位置:首页 → 问答吧 → 有没有办法更改SqlServer的最大嵌套层数

有没有办法更改SqlServer的最大嵌套层数

时间:2011-12-02

来源:互联网

我写了个递归的存储过程,但是运行后发现出现下面的错误:
消息 217,级别 16,状态 1,过程 sp_create_jobset_tree,第 49 行
超出了存储过程、函数、触发器或视图的最大嵌套层数(最大层数为 32)。

经发现递归中无死循环,的确是数据量过大导致嵌套层数超出32导致的,有没有办法去设置SqlServer的最大嵌套层数?

作者: BusyDonkey   发布时间: 2011-12-02

敢问楼主是什么生猛的系统逻辑, 需要嵌套调用32层喔?

建议从系统设计上避免这种情况, 我相信可以的.

作者: ap0405140   发布时间: 2011-12-02

引用 1 楼 ap0405140 的回复:
敢问楼主是什么生猛的系统逻辑, 需要嵌套调用32层喔?

建议从系统设计上避免这种情况, 我相信可以的.


 sp_create_jobset_tree这个存储过程,就是在一个表中生成棵树,这个没办法用户数据量太大了,所以还真的嵌套32层。。。

作者: BusyDonkey   发布时间: 2011-12-02

OPTION(MAXRECURSION 0) --当指定MAXRECURSION为0时,递归层次无限制,100为系统的默认值

作者: fredrickhu   发布时间: 2011-12-02

引用 3 楼 fredrickhu 的回复:
OPTION(MAXRECURSION 0) --当指定MAXRECURSION为0时,递归层次无限制,100为系统的默认值


差了很多资料发现这个东西只能用在CTE上,请教下怎么将其用于存储过程和函数???

作者: BusyDonkey   发布时间: 2011-12-02

看递归方法,SQL2005可无限层,默认为100层

如果是函数、触发器、存储过程。。是32层

作者: roy_88   发布时间: 2011-12-02

作者: roy_88   发布时间: 2011-12-02