U kunt SQL 2005 CTE's gebruiken om de SQL-engine dit recursief te laten doen.
Een opsomming van basisbenaderingen is te vinden op http://blogs.msdn.com/anthonybloesch/archive/2006/02/15/Hierarchies-in-SQL-Server-2005.aspx
Celko heeft ook een bomen-in-SQL-boek waarin dit alles tot in de puntjes wordt behandeld.
Of je kunt het bruut forceren door elk niveau in een lokale tabelvariabele te selecteren en vervolgens te herhalen, kinderen in te voegen met een select, totdat je @@ROWCOUNT nul is (d.w.z. je vindt geen kinderen meer). Als je niet veel gegevens hebt, is dit gemakkelijk te coderen, maar je liet doorschemeren dat je prestaties zoekt door te zeggen dat je geen cursor wilt.