表"、"递归"。 "游标"、"临时表" 完全可以不用! "递归" 思想当然应是解决树型结构的该想到的方法! 但是 T-SQL 的嵌套层次最多只能到 32! icevi(按钮工厂) 的建议是非常值得提倡的,尽管 ID,ParentID 对于仅存储是足够经济的, 但是若用其提供表现形式,性能的确不会太好! 许多高效的树型结构论坛也确实是存储并维护各个节点的层次信息的数据,这样 显示起来仅需一条 SQL 即可! 下面是我的参考答案,两个自定义函数功能几乎一样,都是运算出前面所提的, 应最好主动维护的"层次信息": 方法一: UDF 递归实现! 有 32 层嵌套限制 */ alter FUNCTION dbo.Get32Ancestors (@X integer) RETURNS VARCHAR(250) AS BEGIN DECLARE @ID integer DECLARE @ReturnValue VARCHAR(250) SELECT TOP 1 @ID = ParentID FROM tree WHERE [id] = @X 页码:[1] [2] [3] [4] [5] [6] [7] [8] 第3页、共8页 |