检测SQL表中的行之间的循环引用

时间:2012-12-20 22:23:44

标签: sql sql-server

  

可能重复:
  Detecting circular references in SQL

我需要一种方法来轻松检测SQL Server中具有员工/经理关系的表的循环引用。有没有人写过这个查询?

1 个答案:

答案 0 :(得分:0)

这样的东西?

select ID
from yourtable a
where exists (select *
              from yourtable b
              where a.SourceID = b.TargetID and
                    a.TargetID = b.SourceID)

当然,这不会检测大圆圈(即a --> b --> c --> a)。为此,你需要更强大的东西,比如this