使用T-sql递归语句注意的地方

来源:互联网 发布:源码安装rrdtool 编辑:程序博客网 时间:2024/06/04 18:16
当我们使用如下递归时:
-Creates an infinite loopWITH cte (EmployeeID, ManagerID, Title) as(    SELECT EmployeeID, ManagerID, Title    FROM dbo.MyEmployees    WHERE ManagerID IS NOT NULL  UNION ALL    SELECT cte.EmployeeID, cte.ManagerID, cte.Title    FROM cte     JOIN  dbo.MyEmployees AS e         ON cte.ManagerID = e.EmployeeID)--Uses MAXRECURSION to limit the recursive levels to 2SELECT EmployeeID, ManagerID, TitleFROM cteOPTION (MAXRECURSION 2);
 
 
※:注意OPTION (MAXRECURSION 2)
服务器范围的默认值为 100。如果指定 0,则没有限制。每一个语句只能指定一个 MAXRECURSION 值使用类似的语句
实例中指定2,则最大只能进行2层递归。如果该项未指定,则服务器使用默认值。当递推层数超过100时,服务器就会报错。
 
原创粉丝点击