私はcteを使って1から10を印刷したり、12か月を印刷したりしています
create table eventlist
(
id int identity(1,1) not null,
edate smalldatetime
)
select * from eventlist
insert into eventlist select '01/01/2012'
;with cte AS
(
select edate from eventlist
union all
select dateadd(M,1,edate) from cte where MONTH(edate)<12
)
select MONTH(edate), YEAR (edate) from cte
しかし、突然、このようにcteのすべてのセクションで別のユニオンを組み合わせるだけです
;with cte AS
(
select edate from eventlist
union all
select dateadd(M,1,edate) from cte where MONTH(edate)<12
union all
select dateadd(Y,1,edate) from cte where YEAR(edate)<2013
)
select MONTH(edate), YEAR (edate) from cte
これを実行すると、このエラーが発生します
声明は終了しました。ステートメントが完了する前に、最大再帰回数 100 を使い果たしました。
再帰の制限によるこのエラーは理解していますが、
i just want to understand how will this recurssion will work ?