2017-05-19 21 views
0

こんにちは私はSQL Server 2008でrecusriveクエリを実行しようとしています。特定の値については、クエリは永遠に実行されているようです。他の値については、それは非常に速いです(< 5s) 10よりも多くのクエリを実行するのを防ぐためにsqlでできることはありますか?再帰クエリが無期限に実行される

WITH tree (FID,TID, level) AS (
     SELECT FID, TID, 1 as level 
     FROM table1 
     WHERE FID = '202223268' 

     UNION ALL 

     SELECT child.FID, child.TID, parent.level + 1 
     FROM table1 as child 
     JOIN tree parent on parent.TID = child.FID 
    ) 
     SELECT FID,TID 
     FROM tree 
     option (maxrecursion 0) 

答えて

0

は、私はあなたが(サーバレベルですることができます)クエリごとに実行タイムアウトを制限することができると言うwouldntの、しかし、あなたは(オプションMAXRECURSION)再帰の深さを制限する場合は、非常によく似た結果を得ることができます。

+0

返信いただきありがとうございます。無限の再帰を避ける方法が必要です。オラクルでは、nocycleで接続する前に動作するようです。 SQL Serverに相当するものはありますか? – user1603842

関連する問題