SQL 取树结构下的所有子节点集合(COLLATE DATABASE_DEFAULT)

本文介绍了一个 SQL 存储过程,该过程定义了一个递归函数 fn_GetSubCasNoTree,用于从 CASN 表中获取指定 CAS 编号的所有子节点。此函数通过不断递增层级并检查上一层级的父节点来构建结果集。

 

ExpandedBlockStart.gif代码
 1 SET ANSI_NULLS ON
 
2 GO
 
3 SET QUOTED_IDENTIFIER ON
 
4 GO
 
5 
 
6 CREATE FUNCTION [dbo].[fn_GetSubCasNoTree](@CAS_NO VARCHAR(20))
 
7 RETURNS  @CAS TABLE
 
8 (
 
9  CAS_NO VARCHAR(20COLLATE DATABASE_DEFAULT,这个不加SQL2000会报错。
10  LEVEL INT
11 ) 
12  
13 AS 
14 BEGIN 
15   DECLARE @LEVEL int
16   SET @LEVEL = 1
17   INSERT INTO @CAS SELECT @CAS_NO , @LEVEL
18   WHILE @@ROWCOUNT > 0
19   BEGIN
20  SET @LEVEL = @LEVEL + 1
21  INSERT INTO @CAS SELECT A.CAS_NO , @LEVEL
22  FROM CASN A , @CAS B
23  WHERE A.UP = B.CAS_NO and B.LEVEL = @LEVEL - 1
24   END
25 RETURN
26 END

 

 

转载于:https://www.cnblogs.com/mishy/archive/2010/01/27/1657613.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值