当前位置:首页 > 系统运维 > 正文内容

浅谈SQL Server 2008中新增属性Hierarchyid

a8116255310年前 (2015-10-08)系统运维6

例如我们日常生活中用到最多的组织结构图。我们一般会用一个Employees表保存员工数据,而每个员工则又可能会有相应的上级。以前要得到某个员工的所有上级,或者所有下级,通常所采取的 *** 都是递归。SQL Server 2005开始支持的CTE从一定程序上方便了该工作的实现。

但SQL 2008的hierarchyid让这个工作更加简化和直接。而该类型其实是一个CLR自定义数据类型。

一般我们使用的时候,如下面的例子

--创建表

--查看所有的员工及其级别
SELECT *,Org_Id.Getlevel() AS Level FROM Employees

--查看陈希章的所有下属

DECLARE @BOSS hierarchyid
SELECT @BOSS=Org_Id FROM Employees WHERE EmployeeID=10000
SELECT *,Org_Id.GetLevel()AS Level FROM Employees WHERE Org_Id.IsDescendantOf(@BOSS)=1

--查看赵六及其所有上级
DECLARE @Employee hierarchyid
SELECT @Employee=Org_Id FROM Employees WHERE EmployeeID=10004
SELECT *,Org_Id.GetLevel()AS Level FROM Employees WHERE @Employee.IsDescendantOf(Org_Id)=1

与hierarchyid有关的一些函数主要有

◆GetAncestor :取得某一个级别的祖先

◆GetDescendant :取得某一个级别的子代

◆GetLevel :取得级别

◆GetRoot :取得根

◆IsDescendantOf :判断某个节点是否为某个节点的子代

◆Parse :将字符串转换为hierarchyid。该字符串的格式通常都是/1/这样的

◆Read :Read 从传入的 BinaryReader 读取 SqlHierarchyId 的二进制表示形式,并将 SqlHierarchyId 对象设置为该值。不能使用 Transact-SQL 调用 Read。请改为使用 CAST 或 CONVERT。

◆GetReparentedValue :可以用来移动节点(或者子树)

◆ToString :将hierarchyid转换为字符串,与parse正好相反

◆Write WriteSqlHierarchyId 的二进制表示形式写出到传入的 BinaryWriter 中。无法通过使用 Transact-SQL 来调用 Write。请改为使用 CAST 或 CONVERT。

上一篇 返回首页 下一篇

声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

别人在看

电脑屏幕不小心竖起来了?别慌,快捷键搞定

Destoon 模板存放规则及语法参考

Destoon系统常量与变量

Destoon系统目录文件结构说明

Destoon 系统安装指南

Destoon会员公司主页模板风格添加 ***

Destoon 二次开发入门

Microsoft 将于 2026 年 10 月终止对 Windows 11 SE 的支持

Windows 11 存储感知如何设置?了解Windows 11 存储感知开启的好处

Windows 11 24H2 更新灾难:系统升级了,SSD固态盘不见了...

IT头条

Synology 更新 ActiveProtect Manager 1.1 以增强企业 *** 弹性和合规性

00:43

新的 Rubrik Agent Cloud 加速了可信的企业 AI *** 部署

00:34

宇树科技 G1人形机器人,拉动一辆重达1.4吨的汽车

00:21

Cloudera 调查发现,96% 的企业已将 AI 集成到核心业务流程中,这表明 AI 已从竞争优势转变为强制性实践

02:05

投资者反对马斯克 1 万亿美元薪酬方案,要求重组特斯拉董事会

01:18

技术热点

大型网站的 HTTPS 实践(三):基于协议和配置的优化

ubuntu下右键菜单添加新建word、excel文档等快捷方式

Sublime Text 简明教程

用户定义SQL Server函数的描述

怎么在windows 7开始菜单中添加下载选项?

SQL Server 2016将有哪些功能改进?

IT技术网 版权所有 © 2020-2025, 京ICP备14047533号-20,Power by OK设计网

在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://2345hao.cn/blog/index.php/post/22507.html

分享给朋友:

“浅谈SQL Server 2008中新增属性Hierarchyid” 的相关文章

如何设置Win 7通知栏重新显示电源按钮

如何设置Win 7通知栏重新显示电源按钮

有些使用本本的朋友可能会发现,右下角通知栏区域会无法显示电源按钮,导致在插上电源或者是使用电池的时候都无法进行区分。造成这种情况大部分都是因为使用了第三方修改过的系统版本或者对于系统优化过度,所以今天就来解决这个问题。 第一步:在开始菜单的搜索窗口输入“gpedit.msc”,进入组策略编辑器,依...

上帝不止一个 更多Windows7 快捷模式.

上帝不止一个 更多Windows7 快捷模式.

国外媒体CNET NEWS就这个“上帝模式”和微软Windows部门主管Steven Sinofsky进行邮件交流后得知,这其实只是众多快捷方式中的一个,Sinofsky在邮件里给出了十多个这类快捷方式的关键字符串。 它们的建立方法和之前的“上帝模式”一样,在任意位置新建的一个文件夹,然后改名即可...

Win 7系统中其他声音正常但酷狗音乐没声音怎么回事

Win 7系统中其他声音正常但酷狗音乐没声音怎么回事

故障现象: Windows 7酷狗软件无声音,系统声音正常。 原因分析: 1. 查看酷狗软件设置 2. 查看系统设置 解决方案: 1. Windows 7操作方法 如图:查看是否处于禁音状态   Windows 7系统声音正常酷狗音乐无声音 2. 查看设置音频输出是否...

解决windows 7无法将程序锁定到任务栏或附到开始菜单的方法

解决windows 7无法将程序锁定到任务栏或附到开始菜单的方法

出现该问题的原因是由于使用第三方优化软件消除快捷方式的小箭头引起的。 1、在开始搜索框中键入“regedit”,按回车键打开注册表编辑器。 2、依次定位到以下分支:HKEY_CLASSES_ROOTlnkfile。 3、在lnkfile项上鼠标右键单击“新建”——“字符串值”。...

windows 7玩网游PING高即网络延时比较高的解决方法

windows 7玩网游PING高即网络延时比较高的解决方法

经常听见有人说用Windows 7玩网络游戏的时候网络延时比较高,也就是ping比平时xp的时候高一点,一直找不到原因,很苦恼。今天我们终于找到理由了,原来是Windows 7的一个服务在作怪,这个服务叫:Multimedia Class Scheduler,就是这个服务让我的PING如此高,问题是...

微软为windows 7用户重新发布补丁KB2952664 帮助提升Win10升级体

微软为windows 7用户重新发布补丁KB2952664 帮助提升Win10升级体

1月13日消息,微软今天为Windows 7(SP1)用户重新推送了编号为KB2952664的更新补丁,该更新在官方KB知识库中的描述为“Windows 7系统升级兼容性更新”,用于帮助微软改进当前版本系统,提升升级到最新版Win10系统的体验。 这项更新还用于在系统中显示Windows10更新提...