【问题标题】:how to change a parent id of child and subchilds in hierarchyid如何更改hierarchyid中孩子和子孩子的父ID
【发布时间】:2011-05-04 14:31:17
【问题描述】:
id       hierid
---------------------
2   |    /2/
7   |    /2/7/
8   |    /2/8/
11  |    /2/7/11/
13  |    /2/8/13/
17  |    /2/8/17/
37  |    /2/8/37/

我想把它的根改成 /3/ 这意味着我想要得到的输出是

id     hierid
---------------------
2   | /3/
7   | /3/7/
8   | /3/8/
11  | /3/7/11/
13  | /3/8/13/
17  | /3/8/17/
37  | /3/8/37/

像这样我如何使用hierarchyid来做到这一点

【问题讨论】:

    标签: sql sql-server-2008 hierarchyid


    【解决方案1】:
    UPDATE  mytable
    SET     hierid = hierid.GetReparentedValue('/2/', '/3/')
    WHERE   hierid.IsDescendantOf('/2/') = 1
    

    【讨论】:

      【解决方案2】:

      这个怎么样:

      UPDATE tbl SET hierid = REPLACE(hierid, '/2/', '/3/');
      

      【讨论】:

      • UPDATE tbl SET hierid = REPLACE(hierid.ToString(), '/2/', '/3/')
      • 因为是hierarchyid所以想用ToString()转成字符串
      猜你喜欢
      • 2018-01-29
      • 1970-01-01
      • 2019-04-18
      • 1970-01-01
      • 1970-01-01
      • 2020-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多