以下CTE查詢拋出「語句已終止,最大遞歸100在語句完成前已耗盡」。CTE查詢拋出遞歸用盡錯誤
WITH MyCTE
AS (
SELECT o.organizationid,
organization AS organization
FROM organization o
INNER JOIN store s ON s.organizationid = o.organizationid
UNION ALL
SELECT store.storeid,
CAST(storeNAme AS NVARCHAR(50)) AS storeNAme
FROM store
INNER JOIN MyCTE ON store.organizationid = MyCTE.organizationid)
SELECT DISTINCT
Organization
FROM MyCTE
在union all之前和之後執行子查詢時,獲得followig結果。
錨查詢: - 選擇o.organizationid, 組織作爲組織 從組織爲O INNER JOIN店S於s.organizationid = o.organizationid 結果: -
organizationid |organization
--------------------------------
3 | Org1
後,聯盟所有查詢: -
SELECT store.storeid, CAST(STORENAME AS NVARCHAR(50))AS STORENAME FROM商店
結果: -
StoreId |StoreName
--------------------------------
3 | Warehouse1
我可以知道原因?
1+從我和一些除了回答:按CTE支持默認的最大遞歸級別爲100,但CTE提供了一個通過MAXRECURSION提示改變它的選項。 MAXRECURSION提示值可以介於0到32,767之間。將它的值指定爲0意味着沒有限制。 – Anil
@Raj我想知道爲什麼查詢進入最大遞歸時,個別查詢只返回一行作爲結果 – user2838738