首页 > 代码库 > SQL批量更新具有树形结构表Path字段
SQL批量更新具有树形结构表Path字段
如上图所示,需要更新该表中Path字段,如ID=14的Path值:-1,ID=17的Path值:-1.14,ID=20的Path值:-1.14.18.19
步骤1、创建函数
Create FUNCTION [dbo].[F_Org]( @id int )RETURNS TABLE ASRETURN (with testTable as(select UpperID from Core_DeptInfo where ID=@id union all select Core_DeptInfo.UpperID from Core_DeptInfo,testTable where Core_DeptInfo.ID=testTable .UpperID) select UpperID from testTable )
步骤2、循环执行SQL
declare @minId int declare @maxId int declare @result nvarchar(50)declare @count intselect @minId = MIN(id) from Core_DeptInfoselect @maxId = MAX(id) from Core_DeptInfoWHILE @maxId >=@minIdBEGIN select @count = COUNT(1) from Core_DeptInfo where ID=@maxId; if @count=1 begin select @result = (select CONVERT(nvarchar(50),UpperID) +‘.‘ from dbo.F_Org(@maxId) order by UpperID for xml path(‘‘) ) set @result = LEFT(@result,LEN(@result)-1) update Core_DeptInfoExtend set Path=@result where ID=@maxId end SET @maxId = @maxId -1END
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。