----vesion:1 ----author:viola ----date:08.29 --Sql server 2008获取树形结构的完整的路径. --输入参数:某个叶子节点的id --输出:从叶子节点到根节点的id集合。 --- IF object_id('','U')is not null drop TABLE [Directory] CREATE TABLE [dbo].[Directory]( [cBizDirId] [nvarchar](50) NOT NULL, [cSupDirId] [nvarchar](50) NULL ) DECLARE @r nvarchar(1000);--该变量必须为max,不然字符串连接的过程会超过指定的长度,而得到空字符串。 DECLARE @id nvarchar(50); DECLARE @supId nvarchar(50); set @id='4f56f70c-b903-4beb-9cf4-290050859aa8' SET @r=''--必须给该变量赋初值,不然返回结果为空 WHILE (isnull(@id,'')<>'') BEGIN SELECT @supId=cSupDirId FROM [Directory] WHERE cBizDirId=@id; set @r=@r+','+@id; set @id=@supId; end SELECT SUBSTRING(@r,2,LEN(@r)); GO
Sql server 2008获取树形结构的完整的路径.