火焰

valeb
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

MSSQ 树型结构数据 循环操作

Posted on 2020-07-03 09:17  valeb  阅读(186)  评论(0)    收藏  举报
   DECLARE @dict TABLE (value  VARCHAR(50),[level] int )
   DECLARE @TYPEID NVARCHAR(50) 
   DECLARE @LEVEL INT =0   
   INSERT @dict     
   SELECT  TYPEID,@LEVEL FROM DBO.BAS_WORKSHOP WHERE WID=@WID  --参数值 
   WHILE EXISTS(SELECT * FROM dbo.BAS_WORKSHOP where parid in (select value from @dict where [level]=@LEVEL ))
   BEGIN
      set @LEVEL+=1; 
      insert into @dict(value,[level])
      select typeid,@LEVEL from dbo.BAS_WORKSHOP where parid in (select value from  @dict where  [level]=@LEVEL-1 )
   END  
   UPDATE DBO.BAS_WORKSHOP SET DELETED=1 WHERE TYPEID IN (select value from @dict where [level]>0) 
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GP_DoStartStopWorkshop]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].GP_DoStartStopWorkshop
判断存储过程
Bas_Workshop 主要数据列

WID

TypeID(ID) DELETED ParID(PID)
27  00000  0 root
79  00001  0 00000
80  00002  0 00000
81  0000100001  0 00001