用于读取树形任一节点下所有级别子节点的SqlServer UDF

树形结构是应用中常用的数据结构,最简单的设计类似:

id,name,parent_id

这种最简单的设计通常需要结合递归来最终形成树形UI,而且,对于要取得某一个节点的所有下级节点也不是很方便,
出于这种考虑,使用如下UDF来简化这种操作:
  
  
-- 取得树形结构中当前节点的所有下级节点 CREATE FUNCTION [ dbo ] . [ GetChildCategories ] (@parent_id int ) RETURNS @work Table (num int IDENTITY ( 1 , 1 ),category_id int ) AS BEGIN declare @childrenCount int ,@currCategory_id int ,@num int set @num = 1 insert @work select category_id from Category_Classification where parent_id = @parent_id set @childrenCount = @@ROWCOUNT while (@num <= @childrenCount) Begin select top 1 @currCategory_id = category_id From @work Where num = @num insert @work select category_id From Category_Classification where parent_id = @currCategory_id set @childrenCount = @childrenCount + @@ROWCOUNT set @num = @num + 1 End Return END

主要是将一个递归操作转化为一个单一的循环操作,就这几句代码也不知道该怎么写注释了,笑脸
未有大数据量测试.

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值