Você pode limitar o número de níveis de recursão usando o
MAXRECURSION
dica de opção como esta:OPTION (MAXRECURSION 0);
onde o valor (entre 0 e 32767) especifica o número de níveis de recursão, 0 significando infinito. Da documentação para CTE:
E a documentação das dicas de consulta afirma:
Para usar a instrução, você anexa a cláusula OPTION após a cláusula FROM na consulta usando o CTE recursivo.
Especificar 0 pode levar a coisas ruins se a consulta entrar em um loop infinito.