Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Проблемы с OPTION (MAXRECURSION N) в запросе основанном на рекурсивном CTE  [new]
exexex
Member

Откуда:
Сообщений: 1
Если составляю запрос - на основе рекурсивного CTE с 100+ итерациями: то после добавления хинта OPTION (MAXRECURSION 0) уже не получается с этим запросом выполнять никаких операций.
Например - не могу вложить такой запрос в другой запрос: выдаётся ошибка Incorrect syntax near the keyword 'OPTION'.

with cte as
(Select 1 as a
UNION ALL
Select a+1 From cte Where a < 120)

Select a
From (
Select a From cte OPTION (MAXRECURSION 0)
) x

Тоесть генерирую определённую числовую последовательность (100+ итераций), но потом не выходит производить с этой числовой последовательностью дальнейшие операции.
6 фев 16, 20:56    [18782529]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с OPTION (MAXRECURSION N) в запросе основанном на рекурсивном CTE  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
Предложение option относится ко всему запросу целиком, а не к его части. Отсюда и ошибка.
Уже много раз повторяли - не нужно генерировать последовательности рекурсией, есть более эффективные способы.
А еще лучше завести себе в БД постоянную таблицу натуральных чисел.
6 фев 16, 21:06    [18782572]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с OPTION (MAXRECURSION N) в запросе основанном на рекурсивном CTE  [new]
3unknown
Member

Откуда: New York
Сообщений: 140
with cte as
(Select 1 as a
UNION ALL
Select a+1 From cte 
Where a < 120
)


Select a 
From (
Select a From cte 
) x
OPTION (MAXRECURSION 0)
7 фев 16, 01:11    [18783241]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить