利用 MAXRECURSION來突破CTE預設遞迴次數

日前有一個需求就是每一年初產出今年所有日期的資料,並寫入資料表中。產出今年所有日期的資料的作法我是採用CTE搭配其遞迴的特性來做

然而當我語法寫完執行時卻發生了錯誤,錯誤訊息如下圖。從錯誤訊息中可以知道遞迴是有次數上的限制,預設就是100。

 

 

我們從下圖就可以看出,資料只產出到2020-04-10就發生錯誤而終止了。

 

此時去官方網頁看一下CTE的文件可以發現要突破這個限制只要在語法後面加入MAXRECURSION這個OPTION就可以了。如下圖所示,當我們將MAXRECURSION設為0時就是不限定遞迴次數,這時你也得注意一下自己CTE語法的正確性,以免陷入無窮迴圈。

我是ROCK

rockchang@mails.fju.edu.tw