SQL 2005 CTE を使用して、SQL エンジンに再帰的に実行させることができます。
基本的なアプローチの列挙は、http://blogs.msdn.com/anthonybloesch/archive/2006/02/15/Hierarchies-in-SQL-Server-2005.aspx
Celko はまた、これらすべてを n 度までカバーする SQL に関する本も出版しています。
または、各レベルをローカル テーブル変数に選択し、@@ROWCOUNT がゼロになるまで (つまり、それ以上の子を見つけられなくなるまで) ループし、select を使用して子を挿入することで、ブルート フォースを実行できます。大量のデータがない場合、これは簡単にコーディングできますが、カーソルは必要ないと言ってパフォーマンスを求めていることをほのめかしています。