Printing trees was alway a painfull procedure joining tables to itselves and figuring out the parent/child relationships.
This stored proc crawls throug a table and prints formated nodes and node ids.
The tree is in following format (nothing to do with a real b-tree):
CREATE TABLE [dbo].[tree](
[treeid] [int] NOT NULL,
[parenttreeid] [int] NULL,
[nodename] [varchar](64) NULL,
[rootid] [int] NULL)
The table name and id types are hardcoded, but easy to change if someone prefers integers.
The rootid is the top of the whole tree. The proc takes any node and prints a subtree below that node.