问题标签 [hierarchyid]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - 关于 SQL Server HierarchyID 深度优先性能的问题
我正在尝试在包含大约 50,000 行的表(dbo.[Message])中实现hierarchyID(将来会大幅增长)。然而,检索大约 25 个结果需要 30-40 秒。
根节点是为了提供唯一性而填充的,因此每个后续行都是该虚拟行的子节点。
我需要能够先深度遍历表,并使 hierarchyID 列 (dbo.[Message].MessageID) 成为集群主键,还添加了一个计算的 smallint (dbo.[Message].Hierarchy) 来存储节点的级别。
用法:.Net 应用程序通过一个 hierarchyID 值进入数据库,我希望能够检索该节点的所有(如果有的话)子节点和父节点(除了根,因为它是填充物)。
我正在使用的查询的简化版本:
据我了解,应该在没有提示的情况下自动检测索引。
从搜索论坛中,我看到人们在处理广度优先索引时使用索引提示,但没有在深度优先的情况下观察到这个应用程序。这对我的场景来说是一种相关的方法吗?
在过去的几天里,我一直试图找到解决此问题的方法,但无济于事。我将非常感谢任何帮助,因为这是我的第一篇文章,如果这被认为是一个“noobish”问题,我提前道歉,我已经阅读了 MS 文档并搜索了无数论坛,但没有找到简洁的描述具体问题。
sql-server-2008 - SQL 2008 HierarchyID - 向下选择 X 个后代
如何查询具有数据类型 HIERARCHYID 列的表并获取员工下方 X 级别的后代列表?
这是当前的结构:
sql-server - 我应该担心 HierarchyID 用完吗?
当您在其他两个之间请求新的 HierarchyID 时,结果会逐渐变长。例如,在 2/5.6 和 2/5.7 之间只有 2/5.6.1 和其他 4 个组件路径。HierarchyID 数据类型限制为 800 个字节,因此您不能永远重复此操作。再说一次,整数类型也是有限的,但在实践中这不是问题。我是否应该定期整理我的表格以使高度不会无限增长?
sql-server - 如何使用 SQL Server 2008 hierarchyid 获取节点的所有祖先?
给定具有hierarchyid
类型列的表,如何编写查询以返回作为特定节点的祖先的所有行?
有一个IsDescendantOf()
函数,非常适合获取孩子,但没有相应的IsAncestorOf()
函数来返回祖先(并且缺少GetAncestors()
函数似乎是一个疏忽。)
model-view-controller - 在 MVC 中的下拉列表中排序
我在 MVC 的视图中的下拉菜单有问题。下拉列表中的选项元素来自表,应按 hierarchyId 列排序。我已经制作了一个正确排序的视图,但是当我从视图创建实体并将其用于下拉列表时,排序被忽略。
我发现 L2S 和 EF 不支持 hierarchyId 数据类型,所以这可能是问题所在 - 但必须可以创建视图并使用视图中的排序来正确填写下拉列表?
提前致谢,Steffen Jorgensen,丹麦
nhibernate - NHibernate 中的 SQL 2008 HierarchyID 支持
搜索了各种 NHibernate 列表,但没有得出明确的答案。SQL2008 方言似乎不支持 HierarchyID 数据类型 - 只有新的日期和时间类型。
有没有人有一个很好的实现或有效的解决方法?我真的很想在我的新应用程序中利用 HierarchyID。MS 自己的工具严重缺乏对这种有趣且强大的数据类型的支持,所以我对 NHibernate 没有支持并不感到震惊。
有一些 方法我还没有深入研究。想知道是否有人对什么有效,什么更高效等有一些经验。
完全披露:我正在使用 Castle ActiveRecord 但这似乎是一个 NHibernate 问题。
c# - 在C#中将字符串转换为hierarchyid
我需要能够在 c#.net 中将字符串转换为 hierarchyid - 我不能使用存储过程。
当我传入路径(字符串)时,查询失败,因为路径是这样存储的 '/' 而不是 /
我可以将其转换为另一种类型吗?
——BitKFu
我已经添加了,这是它产生的 sql 查询:
我收到以下错误:ex = {“'/' 附近的语法不正确。”}
--ck
这就是我所期待的
——保罗·鲁安
我已经看过这个页面,但它并没有真正帮助,除非我忽略了什么?
谢谢
克莱尔
sql-server - 在 SQL Server 中更新“Hierarchyid”
我在 SQL Server 的一张表中使用了 Hierarchyid 数据类型。
现在我想更改其中一行的父亲,但是当我更改它时,它的所有后代 HierarchyId 都必须根据它进行更改。
是否有这样做的功能,或者我必须自己更改所有功能。如果我需要这样做,最好的方法是什么?
提前致谢
sql-server - 无法在对象中插入重复键(GetReparentedValue / hierarchyid)
使用我在网上找到的示例,我创建了一个函数,该函数使用 GetReparentedValue 重新设置子项。
但是,当我运行代码时,出现以下错误:无法在对象中插入重复键。
我明白为什么(因为我正在尝试让孩子重新成为父母,而新父母已经有了孩子,所以我需要知道新父母结构中孩子的 MAX 路径(层次结构),但我不明白我实际上是怎样的打算这样做。
路径 0x58
旧路径 0x
新路径 0x68
添加孩子时我必须这样做,所以我认为需要将其添加到上面的查询中,但我不知道在哪里path + ".GetDescendant(" + lastChildPath + ", NULL)
数据库表
有人有什么建议吗?
提前感谢您的帮助:-)
克莱尔
sql - 等级问题
我有一个带有 hierarchyid 列的表。它像是:
我想看到这样的名字:
我怎样才能做到这一点?