У меня есть запрос, который исчерпывает ограничение по умолчанию MAXRECURSION
, равное 100. Дает мне следующее сообщение об ошибке:
Заявление прекращено. Максимальная рекурсия 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