问题标签 [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.
ssis - hierarchyid / SSIS / 内存变量
我意识到我可以将 hierarchyid 转换为字符串变量,并将其作为字符串存储在 SSIS 内存变量中。我想不通的是SSIS中的批量插入,并使用内存变量将其插入到列类型为hierarchyid的表中......
我可以将它存储为字符串,但感觉不对...
除了 SQL 向导,我找不到任何关于 SSIS 和 hierarchyid 的信息,但这确实适用于这里,因为我有自己的自定义包。
我正在使用 SQL Server 2014。
问候,理查德
sql - 展平 SQL Server Hierarchy ID 中的树路径
我正在使用 SQL Hierarchy 数据类型对我的应用程序中的分类结构进行建模。分类可以在不同级别有相同的名称
在设置过程中,需要通过 Excel 表上传这些数据。
在插入任何节点之前,我想检查特定路径上的节点是否已经存在,这样我就不会复制条目。检查节点@特定绝对路径是否已经存在的最简单方法是什么?
例如,在“Bank 2”下插入“Retail”之前,我应该能够检查“/Bank 2/Retail”不存在
有没有办法提供整个树结构的扁平表示,以便我可以检查绝对路径然后继续?
sql-server - GetAncestor 查询 SQL hierarchyid 以始终拉取某些级别
我们通常被要求在报告中包含某些层次结构的级别,我正在寻找一种使用 hierarchyid 提高查询性能的方法。我做了一些测试,并且我有一些有效的查询,但我认为性能可能会更好。下面是一个为给定条目提取级别 2 到 4 的示例。我想出了一种方法来使用 GetAncestor() 函数结合hierarchyid的级别。第一个查询看起来很快,但它被硬编码为只返回某个级别的行,以避免用负值破坏 GetAncestor 查询。第二个示例解决了该问题,但速度要慢得多。理想情况下,第二个选项是我想要使用的,但它不够快。
sql-server - SQL Server HierarchyID:如何添加多个孩子?
Itzik Ben-Gan 在这里描述了一些如何使用 hierarchyId 数据类型的简单方法。
http://sqlmag.com/t-sql/hierarchyid
他使用存储过程将孩子添加到某个根
要将任何叶子添加到树中,需要像这样调用这个过程:
我的问题是:
我有一张包含叶子兄弟列表的表格,我需要将其添加到同一级别的父级 14
我可以创建游标并调用 proc N 次。但也许它可以做得更有效?以某种方式在一个查询中?
sql-server - 如何使用hierarchyid复制分支?
我有一个带有字段的简单表:
我需要创建一个存储过程,它将分支复制到另一个父级。
例如,像这样:
我已经完成了将一个分支从一个父级移动到另一个的过程,这里是:
但现在我需要制作具有相同层次结构和 item_name 的副本。
sql-server-2008 - 在 MSSQL 2008 中自动创建 HierarchyID
我正在创建一个同时具有自引用外键和层次结构的表。
有没有比为每个节点创建它更简单的方法来填充hierarchyid,如下所示?
在此示例中,父节点的 ID 为 3,并且 8 和 9 是 3 的子节点。
common-table-expression - 带有 HierarchyID 的 CTE 突然导致解析错误
所以我的数据库中有一个名为 的自引用表Nodes
,用于存储组织的树结构:
我使用 HIERARCHYID 来管理基于访问级别等的查询。tvf_OrgNodes
很久以前,我为此编写了一个表值函数,在 SQL Server 2008 到 2014 期间进行了测试和工作,从那时起它一直保持不变,因为它做得很好。然而,现在情况发生了变化,因为从路径 nvarchars ("/2/10/8/") 解析 HIERARCHYID 会导致以下错误,在 Google 上仅匹配 4 个命中 (!):
将函数更改为仅返回 NVARCHAR 而不是实际的 HIERARCHYID 时,路径看起来都很好,从/
根目录开始,然后是/2/
等等。简单地选择HIERARCHYID::Parse('path')
也可以正常工作。实际上,我通过将路径作为字符串一直保留到 INSERT 到函数结果中,并在那里解析路径,从而使函数正常工作。但是,当我尝试将重新生成的数据插入到相同模式的表中时,我得到了同样的错误。
所以问题是,这是一个错误,还是有人知道使用 HIERARCHYIDs<->Path 字符串可能导致这种情况的任何(新的?)陷阱?我不明白整个二进制字符串的想法来自哪里。
这是 TVF 的代码:
我可能最近为 lolz 安装了 .NET 4.53 aka 4.6。但是,除了在 reg 中,在任何地方都找不到太多证据:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework\v4.0.30319\SKUs.NETFramework,Version=v4.5.3
sql-server - 尝试使用 hierarchyid 时出现错误 24000
当我尝试hierarchyid
在我的应用程序中生成时遇到问题。具体来说,每个节点我似乎不能有超过 16 个孩子。这是我试图用于我的存储过程的代码(这是一个只有一个隐藏字段和一个内容字段的测试表:
这是我得到错误的方式:
- 跑
INSERT INTO testing (hid , content) VALUES (hierarchyid::GetRoot () , 'a') ;
- 跑
EXEC testAdd '/' , 'a';
16次。
我得到的错误如下:
此外,我试图从这个答案运行第二个代码片段,它立即坏了。
可能出了什么问题?
更新:我已经卸载了 VS 2015 和 sql server 2014 的 CLR 数据类型,并用旧版本替换它们无济于事。
sql-server - 如何插入自动生成的标识值作为同一记录上的 hierarchyid 字段的一部分
我正在尝试找到一种将记录插入表的方法,该表使用新生成的 Identity 值作为其层次结构 ID 的一部分。以下 sql 演示了我正在尝试做的事情,以及我设法做到的最接近的事情。这是在事务内部使用插入后跟更新。我在想出初始层次结构 id 时遇到了麻烦,因为该字段有一个唯一的约束,我担心如果同时将 2 个元素添加到同一个父级,可能会引发错误。
如果可能的话,我想使用单个语句插入,该语句将在 hierarchyid 字段中包含新的 Identity 值。
sql-server - 更好地理解 HeirarchyId 节点
我正在查看 SQLserver 2008 中的 HeirarchyId 并参考以下文档:
http://www.codeproject.com/Tips/740553/Hierarchy-ID-in-SQL-Server
据我了解像这样的声明
将 Node 对象插入数据库。它具有三个属性,每个属性都转换为一列:
- 节点文本
- 节点
- 节点级别
其中 Node 包含一些人类不可读的值,但我认为 Node Text 是一个引人注目的并且包含 \1\1 类型的格式,这种格式既是人类可读的,又可以跟踪每个节点在树中的位置。因此,当我们说“HeirarchyId”时,它指的是哪一列,除了 Node Text 是 Node 的人类可读表示这一事实之外,Node 和 NodeText 都完全相同?