Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

La récursivité maximale de 100 a été épuisée avant que l'erreur d'achèvement de l'instruction ne s'affiche dans la requête SQL

Vous pouvez limiter le nombre de niveaux de récursivité en utilisant le MAXRECURSION indice d'option comme ceci :OPTION (MAXRECURSION 0); où la valeur (entre 0 et 32767) spécifie le nombre de niveaux de récursivité, 0 signifiant infini.

À partir de la documentation pour CTE :

Et la documentation pour les conseils de requête indique :

Pour utiliser l'instruction, vous ajoutez la clause OPTION après la clause FROM dans la requête à l'aide du CTE récursif.

Cependant, spécifier 0 peut entraîner de mauvaises choses si la requête entre dans une boucle infinie.