递归查询无限期运行

时间:2017-05-19 13:31:43

标签: sql-server-2008 recursion

您好我正在尝试在SQL Server 2008中运行recusrive查询。对于特定值,查询似乎永远运行。对于其他值,它非常快(<5s) 我可以在sql中做些什么来阻止查询运行超过10s?

    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)

1 个答案:

答案 0 :(得分:0)

我不会说你可以在查询的基础上限制执行超时(你可以在服务器级别),但是如果限制递归深度(选项maxrecursion)你可以获得非常相似的结果。