关于无限级分类的问题~

xf2gl 2004-11-25 12:28:44
现有物资类别表m_class,结构如下:


guid superior_guid class_name
1 1 办公用品
2 1 笔类
3 2 毛笔
4 2 钢笔


理论上可以支持无限级分类,请问各位高手,怎样用最高的效率读出各级分类的GUID,有多少级别就要读出多少,并存入一张临时表里面,谢谢~
...全文
110 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yelook 2004-11-25
  • 打赏
  • 举报
回复
CREATE PROCEDURE GetIDS
(
@PID int
)
AS
DECLARE
@higherID int,
@intCount int
set @higherID = @PID
declare @tb_Result TABLE(ID int)
declare @tb_Parent TABLE(ID int)
declare @tb_Child TABLE(ID int)
INSERT INTO @tb_Parent(ID) VALUES (@higherID)
SELECT @intCount = COUNT(*)
FROM [UserTable]
WHERE (PID = @higherID)
WHILE @intCount <> 0 -- 有下级
BEGIN
DELETE @tb_Child /* 清空子表 */
INSERT INTO @tb_Child(ID)
SELECT ID FROM [UserTable]
WHERE (PID in (SELECT ID FROM @tb_Parent))
SELECT @intCount = COUNT(*) FROM @tb_Child
INSERT INTO @tb_Result(ID) SELECT ID FROM @tb_Child
DELETE FROM @tb_Parent
INSERT INTO @tb_Parent(ID) SELECT ID FROM @tb_Child
END
insert into @tb_Result(ID) values (@higherID)
davorsuker39 2004-11-25
  • 打赏
  • 举报
回复
学习
xf2gl 2004-11-25
  • 打赏
  • 举报
回复
我用的GUID数据类型为字符型的(例:CBAA7F41-BB4C-3F0229FED5D1),这样的化用你的存储过程就不行,还望高手帮我再改改!
yelook 2004-11-25
  • 打赏
  • 举报
回复
http://xiangbj.vicp.net/Forums/ShowPost.aspx?PostID=9#9

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧