我有耗尽的100默认MAXRECURSION
限制给我下面的错误消息的查询:如何以及在哪里设置MAXRECURSION选项?
声明终止。报表完成前,最大递归100已用尽。
我发现我需要提高此CTE的限制使用OPTION (MAXRECURSION xxx)
但我不知道该把这个放在哪里。
到目前为止,我试图把它放在我定义CTE的地方,但它不工作。我也尝试了几个不同的地方,它也不能工作。我每次得到的错误是:
关键字'OPTION'附近的语法不正确。
那么我应该在哪里把OPTION (MAXRECURSION XXX)
命令放到我的SQL中?
with
tab (id,start,en) AS (
SELECT 1, 100, 200
UNION ALL SELECT 2, 200, 500
),
cte (id,start,en) AS (
SELECT id, start, en FROM tab
UNION ALL
SELECT id, start+1, en FROM cte WHERE start+1 <= en
)
SELECT id, start
FROM cte
ORDER BY id
加布:如果您运行上面的查询,你会得到最大递归100因为范围是200-500之间。如果您删除此选择,它会很好地工作。所以唯一的选择是使用OPTION(MAXRECURSION 1000),但每次我把这个声明放在我认为会发生的事情旁边:抱怨:在关键词'OPTION'附近的语法不正确。我修改了这个问题。 – dcpartners 2010-07-28 03:45:20