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)