以前使用的是2000 读那种菜单子菜单数据 都要自己写个存储过程来递归
2005后就支持CTE查询了 方便不少 而且很容易明白
代码
with dt(c_name,pkid,c_parent)
as
(
select c_name,pkid,c_parent from CategorySelf where pkid = 2 --这是查第一级菜单的条件
union all
select p.c_name,p.pkid,p.c_parent from CategorySelf p inner join
dt on p.c_parent = dt.pkid
)
select * from dt where pkid != 2