SELECT * FROM [dbo].[BankUser] OPTION( MAXRECURSION 128) 设置CTE递归循环的次数防止死循环
1 --SELECT * FROM [dbo].[BankUser] OPTION( MAXRECURSION 128) 设置CTE递归循环的次数防止死循环 2013-7-25
2
3 --拓狼_王成辉(34665702) 2013/7/25 12:03:03
4 --递归CTE如何避免死循环,比如A的子是B,B的子又是A
5 --李主明(1411739743) 2013/7/25 12:03:50
6 --好像很难
7 --OPTION( MAXRECURSION 128)
8 --拓狼_王成辉(34665702) 2013/7/25 12:04:18
9 --这个只是设定最大递归次数
10 --
11 --如果递归 CTE 组合不正确,可能会导致无限循环。
12 -- 例如,如果递归成员查询定义对父列和子列返回相同的值,则会造成无限循环。
13 -- 可以使用 MAXRECURSION 提示以及在 INSERT、UPDATE、DELETE 或 SELECT 语句的 OPTION 子句中的一个 0 到 32,767 之间的值,
14 -- 来限制特定语句所允许的递归级数,以防止出现无限循环。
15 -- 这样就能够在解决产生循环的代码问题之前控制语句的执行。
16 -- 服务器范围的默认值为 100。 如果指定 0,则没有限制。
17 -- 每一个语句只能指定一个 MAXRECURSION 值。 查询提示 (Transact-SQL)。
18
19 USE [pratice]
20 GO
21 SELECT * FROM [dbo].[BankUser] OPTION( MAXRECURSION 128)