gpt4 book ai didi

sql - 生成HierarchyID

转载 作者:行者123 更新时间:2023-12-03 21:30:56 28 4
gpt4 key购买 nike

我想这样插入hierarchyId

  • /-CEO(Root)
  • /1/-采购经理
  • /1/1/-采购执行

  • /2/-销售经理
  • /2/1/-销售主管



  • 这就是我想使用的层次结构,对吗,如果可以的话,任何人都可以给我一些代码片段。

    最佳答案

    我在搜索有关hierarchyid数据类型的信息时遇到了这个问题,并认为对追随我的其他人也很感兴趣,因为他们也看到根据问题插入hierarchyid的代码。

    我并不是说这些是插入hierarchyid的唯一方法,但是希望它能对像我一样没有使用该数据类型的经验的人有所帮助。

    使用此表,

    create table OrgChart
    (
    Position hierarchyid,
    Title nvarchar(50)
    )

    您可以使用 Parse通过字符串路径直接插入 hierarchyid:
    insert into OrgChart(Position, Title) 
    values (hierarchyid::Parse('/'), 'CEO'),
    (hierarchyid::Parse('/1/'), 'Purchase Manager'),
    (hierarchyid::Parse('/1/1/'), 'Purchase Executive'),
    (hierarchyid::Parse('/2/'), 'Sales Manager'),
    (hierarchyid::Parse('/2/1/'), 'Sales Executive')

    并使用以下查询检查表
    select Position.ToString(), * from OrgChart

    您还可以使用 hierarchyid数据类型方法 GetRootGetDescendant来构建层次结构。我发现此方法比较麻烦,但是我想如果您以编程方式管理层次结构,则必须使用这些方法。
    declare @root hierarchyid,
    @id hierarchyid

    set @root = hierarchyid::GetRoot()

    insert into OrgChart(Position, Title) values (@root, 'CEO')

    set @id = @root.GetDescendant(null, null)
    insert into OrgChart(Position, Title) values (@id, 'Purchase Manager')

    set @id = @root.GetDescendant(@id, null)
    insert into OrgChart(Position, Title) values (@id, 'Sales Manager')

    select @id = Position.GetDescendant(null, null) from OrgChart where Title = 'Purchase Manager'
    insert into OrgChart(Position, Title) values (@id, 'Purchase Executive')

    select @id = Position.GetDescendant(null, null) from OrgChart where Title = 'Sales Manager'
    insert into OrgChart(Position, Title) values (@id, 'Sales Executive')

    一定要查看其他答案中提供的链接,但希望尝试使用此代码也会有所帮助。

    关于sql - 生成HierarchyID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4439830/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com