Как вывести рекурсию в запросе? Какая польза от «С»? Как это работает внутри? - PullRequest
1 голос
/ 11 октября 2010

Почему этот запрос завершен с ошибкой?

;with tempData as
 (
        select 32 as col1, char(32) as col2
        union all
        select col1+1, char(col1+1) from tempData
 )
select * from tempData

Ответы [ 2 ]

2 голосов
/ 11 октября 2010

Рекурсия нуждается в завершающем условии. Например

;with tempData as ( 
select 32 as col1, char(32) as col2 
union all 
select col1+1, char(col1+1) from tempData 
where col1 < 255
) 
select * from tempData
option (maxrecursion 223)

Относительно вопроса в заголовке о том, как это работает внутри, см. этот ответ .

0 голосов
/ 11 октября 2010

У вас есть бесконечный цикл: где он должен заканчиваться?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...