再帰的クエリがあります。私は声明 完了前に枯渇したX再帰的ループの後にクエリを停止
最大再帰100の代わりに戻って、データベースからいくつかの結果を取得したい無限ループがある場合にのみ、クエリは、ほとんどの場合で動作します。
クエリは次のようになります。だから私は、私は上記の問題を解決し、データバックのいくつかのレベルを与えることができるようにクエリを変更したい
WITH bom ([id],[parentNumber],[warehouse],[sequenceNumber]
,[childNumber],[childDescription],[qtyRequired],[childItemClass]
,[childItemType],[scrapFactor],[bubbleNumber] ,[operationNumber]
,[effectivityDate],[discontinuityDate],[companyID]) AS (
select * from [products].[BillOfMaterial] where parentNumber IN ('XXXXXXXXXX')
and companyID = '0'UNION ALL
select c.* from bom b INNER JOIN [products].[BillOfMaterial] c on b.childNumber = c.parentNumber and c.companyID = '0')
SELECT distinct * FROM bom
。通常、樹木は5レベルより深くはありません。
これはSqlサーバーの再帰クエリで可能ですか?
この行の後にOPTION(MAXRECURSION 2)を使うことができます。SELECT distinct * FROM bom –
@FadySaadそれは何もしないで、エラーメッセージに '100'の代わりに' 2'と言うだけです。 – Siyual