有一树状结构表,如部门编码表:
DeptID:部门ID
DeptName:部门名称
Grade:级别//局、处、科
FarDeptID:上级部门ID
FullName:全称如何合理设计增删改

解决方案 »

  1.   

    删除:
    if NOT Exists(select deptid from 表 WHERE FARdEPTID = @DEPTID) 
    DELETE 表 where deptid = @DEPTID
    更新:如果不更新ID就无所谓更新难度了。更新ID时:
    Declare  UpdateTable Cursor for (select deptid from 表 WHERE FARdEPTID = @DEPTID_Old) OPEN UpdateTable FETCH NEXT FROM UpdateTable 
    INTO @Temp
    WHILE @@FETCH_STATUS = 0
    BEGIN
        update 表 set farDeptID = @DEPTID_New Where farDeptID =@DEPTID_Old        and    DeptId = @Temp
        FETCH NEXT FROM OneEquipInfo 
        INTO @Temp
    ENDCLOSE OneEquipInfo
    DEALLOCATE OneEquipInfo
    update 表 set DeptID = @DEPTID_New Where DeptID = @DEPTID_Old
        
      

  2.   

    感谢各位,我找到了方便的维护方法,使用TreeView,现在我遇到一问题:在TreeView中,如何获得当前节点的所有父节点?如:省局
       信息处
          办公室
    公安局
       刑侦处
          办公室我要得到每一级的全称,如:公安局刑侦处办公室