none
использование CTE в inline табличных функциях, usage of CTE in inline table-valued functions RRS feed

  • Вопрос

  • Запрос такого вида работает That query is compilable
    create function GetNumerationUpTo (@Max int)
    returns table
    as return (with Enum(Num) as
                    (select 1
                     union all
                     select Num+1
                     from Enum
                     where Num<@Max)
               select Num
               from Enum);
    А при добавлении but adding this one fails
    option (maxrecursion 10000)
    уже нет. Как решить данную проблему? Any suggestion?
    • Перемещено Siddharth Chavan 2 октября 2010 г. 0:24 MSDN Forums Consolidation (От:SQL Server для разработчиков)
    19 ноября 2009 г. 8:26

Ответы

  • Использовать внутри CTE option (Как и агрегатные функции, Group By, Having, что конечно жаль) не получится. Зато можно использовать в вызове:

    SELECT * FROM GetNumerationUpTo(10000)

    OPTION (MAXRECURSION 10000)

    • Предложено в качестве ответа Mihail Destroy 3 декабря 2009 г. 8:29
    • Помечено в качестве ответа I.Vorontsov 9 декабря 2009 г. 10:03
    3 декабря 2009 г. 8:29