ジョブをリンクするテーブルがあります。
JobToJob
(
JobToJobId int
SourceJobId int
DestinationJobId int
)
ジョブは複数の宛先ジョブ (つまり、複数の JobToJob レコード) を持つことができますが、ソース ジョブは 1 つだけです。したがって、これによりツリー構造が作成されます。ルート レコードは、他のレコードに DestinationJobId エントリがないものとして定義されます。
私が持っている要件は、提供されたジョブ ID のツリー全体を取得することです。これを 2 つの部分に分けました。
- 特定のジョブ ID のルート ジョブを見つける
- ルート ジョブ ID のすべてのリーフを取得します。
再帰的な CTE を使用してこれを試してみましたが、どこにも行きません。おそらくストアドプロシージャを使用してこれを行うことができることは承知していますが、処理が遅くなる傾向があるため、それを避けようとしています。
これにアプローチする最善の方法について、私よりも再帰的な CTE の経験がある人はいますか?
乾杯、
ロブ