首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

递归查询解决办法

2012-03-09 
递归查询我的表 code_catalog_structure(catalogid varchar(50),parentid(50),title varchar(50))递归查询

递归查询
我的表 code_catalog_structure(catalogid varchar(50),parentid(50),title varchar(50))
递归查询出 根 catalogid为 '*ROOT*' 的所有按层次查询出来,语句
with father as
(
  select *,lev=0 from code_catalog_structure where parentid = '*ROOT*' 
  union all
  select a.*,lev=lev+1 from code_catalog_structure a join father b on a.parentid = b.catalogid
)
select parentid,catalogid,lev from father
不明白的地方
1。为啥报“查询已完毕但有错误,消息 530,级别 16,状态 1,第 2 行
语句被终止。完成执行语句前已用完最大递归 100。”
2。查询结果应该是
比如
  *ROOT* 0
  我是一层 1
  我是一层的一 1
  我是二层 2
  我是二层的一 2
但是结果给来了
好几遍这样的
  *ROOT* 0
  我是一层 1
  我是一层的一 1
  我是二层 2
  我是二层的一 2
  *ROOT* 0
  我是一层 1
  我是一层的一 1
  我是二层 2
  我是二层的一 2
。。。。。
请指点,我想要的结果应该是指定catalogid得出它下面的所有,请给代码,查了好多帖子,结果大都死循环,谢谢

[解决办法]
估计是数据有问题


超过100层要用 from father 后面加上 option (MAXRECURSION 0)
[解决办法]
语句被终止。完成执行语句前已用完最大递归 100。”

[解决办法]
你表中的数据不对.
注意这种结构表的数据:

SQL code
create table code_catalog_structure(catalogid nvarchar(10),col varchar(10),parentid nvarchar(10))insert into code_catalog_structure select '我是一层的一','aaa','*ROOT*'insert into code_catalog_structure select '我是一层的二','bbb','*ROOT*'insert into code_catalog_structure select '我是二层的一','ccc','我是一层的一'insert into code_catalog_structure select '我是二层的二','ddd','我是一层的二'insert into code_catalog_structure select '我是三层的一','eee','我是二层的一'insert into code_catalog_structure select '我是三层的二','fff','我是二层的二'insert into code_catalog_structure select '我是三层的三','ggg','我是二层的二'go;with father as(  select *,lev=0 from code_catalog_structure where parentid = '*ROOT*'    union all  select a.*,lev=lev+1 from code_catalog_structure a join father b on a.parentid = b.catalogid)select parentid,catalogid,lev from father/*parentid   catalogid  lev---------- ---------- -----------*ROOT*     我是一层的一     0*ROOT*     我是一层的二     0我是一层的二     我是二层的二     1我是二层的二     我是三层的二     2我是二层的二     我是三层的三     2我是一层的一     我是二层的一     1我是二层的一     我是三层的一     2(7 行受影响)*/godrop table code_catalog_structure
[解决办法]
以上几位同学都很认真的回答

热点排行