可能重复:
检测 SQL 中的循环引用
我需要一种方法来轻松检测 SQL Server 中具有员工/经理关系的表的循环引用。有人已经写过这个查询了吗?
像这样的东西?
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。