我有耗盡的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