存储过程-树形结构数据删除

在项目中经常会遇到树形结构存储的数据,为了方便用户使用就会要求删除树的父节点同时子节点也跟着删除,这里根据网上查找的资料和自己的整理写了个存储过程,代码如下:

create PROCEDURE [dbo].[proc_EntityList] @EntityId varchar(36)
AS   
    BEGIN  
        SET NOCOUNT OFF  
        DECLARE @i INT  
        SET @i = 0  

        create table #FIDS --创建临时表#Tmp
        (
        id  varchar(36) not null, --创建列ID
        levelNo                varchar(50),      
        );

        INSERT  INTO #FIDS  
                ( id, levelNo )  
        VALUES  ( @EntityId, -- id - int  
                  1  -- levelNo - int  
                  )  
        WHILE @@ROWCOUNT > 0   
            BEGIN  
                SET @i = @i + 1  
                INSERT  #FIDS  
                        SELECT  F.ID ,  
                                @i + 1  
                        FROM    #FIDS R ,  
                                dbo.EntityList F  
                        WHERE   F.PID = R.id  
                                AND R.levelNo = @i  
            END  
              
        DELETE  FROM dbo.EntityList  
        WHERE   ID IN ( SELECT  ID  
                        FROM    #FIDS )  
    END  

 

转载于:https://www.cnblogs.com/xiangzhong/p/5028639.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值