実行するとエラーを返す再帰クエリがあります。他のデータベース(より多くのデータを含む)では、問題はありません。私の場合、このクエリは再帰を実行する 2 つの列 (ID_PARENT と ID_CHILD) を返します。これは、ツリーが複数のレベルを持つことができるためです。「直接の」親のみが必要です。
注: クエリの最後に OPTION (MAXRECURSION 0) を配置しようとしましたが、うまくいきませんでした。次のクエリはクエリ全体の一部にすぎません。継続的に実行されるクエリを持つ「大きなクエリ」の最後にのみ OPTION を配置しようとしましたが、エラーは表示されませんでした。
SQL Server にエラーがあります:
「ステートメントが終了しました。ステートメントが完了する前に最大再帰 100 を使い果たしました」
クエリは次のとおりです。
WITH q
AS (SELECT ID_ITEM,
ID_ITEM AS ID_ITEM_ANCESTOR
FROM ITEMS_TABLE i
JOIN ITEMS_TYPES_TABLE itt
ON itt.ID_ITEM_TYPE = i.ID_ITEM_TYPE
UNION ALL
SELECT i.ID_ITEM,
q.ID_ITEM_ANCESTOR
FROM q
JOIN ITEMS_TABLE i
ON i.ID_ITEM_PADRE = q.ID_ITEM
JOIN ITEMS_TYPES_TABLE itt
ON itt.ID_ITEM_TYPE = i.ID_ITEM_TYPE)
SELECT ID_ITEM AS ID_CHILD,
ID_ITEM_ANCESTOR AS ID_PARENT
FROM q
このクエリを書き直して、再帰エラーを回避し、少数のデータを確認することを提案する必要があります。