您的位置: 首页 >日志>动易系统>详细内容

动易系统

如何批量修改科室的节点标识符

来源:本站原创 发布时间:2021-06-08 08:51:54 浏览次数: 【字体:

我们在做医院项目时,免不了要建立科室节点子站情况。科室子站节点的建立一般都是批量处理的,毕竟科室子站下的子栏目基本都是一样,只是偶尔有一两个科室不同。在旧系统节点的前台地址都是根据ID进行区分的,这个没什么问题。

但新系统的前台路由机制改变了,一般都是使用节点标识符嵌套的方式进行显示,这样问题来了。我们先看下后台批量添加节点后的效果:

从上图可以看到,由于系统不允许出现相同的节点标识符,批量添加节点后,相同名称的节点的标识符后面都会自动添加个数字。这样,就会导致各科室子站的栏目前台访问路径,出现各种标识符+数字的情况。虽然使用上没什么问题,一般都能正常访问,但体验上不太好,而且显得不够专业。如果我们通过后台一个一个去改,几十个节点,估计要花上半天时间才能修改完。最简单快捷的办法就是通过数据库,批量去改了,毕竟节点名称都一样,只要整理好节点筛选的规律就可以。

再次提醒:修改数据库前记得备份!修改数据库前记得备份!修改数据库前记得备份!(重要是事情说三遍)

批量修改科室节点的SQL语法:


declare @NodeName varchar(50), @Identifier varchar(50), @Depth int 

SET @NodeName = '科室简介'  /* 科室子栏目名称 */

SET @Identifier = 'ksjj'  /* 科室子栏目拼音简写 */

SET @Depth = 3  /* 科室子栏目所在的层级,一级为0,二级为1,三级为2,如此类推... */

 update PE_ContentManage_Node set Identifier = (select Identifier from PE_ContentManage_Node where [left] < PCM.[left] and [right] > PCM.[right] and Depth = @Depth - 1 ) + '-'  + @Identifier from PE_ContentManage_Node as PCM where NodeName = @NodeName and Depth = @Depth


这里是根据各个科室的子栏目名称和层级进行查找,如果有4个子栏目需要分别查找4次

×

用户登录