知识大全 SQL Server 2008 中的hierarchyid类型应用
Posted 员工
篇首语:如果每个人都理解你,那你得普通成什么样!本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 SQL Server 2008 中的hierarchyid类型应用相关的知识,希望对你有一定的参考价值。
SQL Server 2008 中的hierarchyid类型应用 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
SQL Server 的一个重要新增特性 主要解决的问题是拥有层次关系的表格 例如我们日常生活中用到最多的组织结构图 我们一般会用一个Employees表保存员工数据 而每个员工则又可能会有相应的上级 以前要得到某个员工的所有上级 或者所有下级 通常所采取的方法都是递归 SQL Server 开始支持的CTE从一定程序上方便了该工作的实现
但SQL 的hierarchyid让这个工作更加简化和直接 而该类型其实是一个CLR自定义数据类型
>一般我们使用的时候 如下面的例子
创建表
CREATE TABLE Employees
(
Org_Id hierarchyid NOT NULL
EmployeeId INT NOT NULL
EmployeeName VARCHAR( ) NOT NULL
Title VARCHAR( ) NOT NULL
)
GO
插入一些员工 注意第一个列的格式 必须用/开始和结束 这是一个路径的符号 这是一个关键
INSERT INTO dbo Employees VALUES( / 陈希章 CEO );
INSERT INTO dbo Employees VALUES( / / 张三 CTO );
INSERT INTO dbo Employees VALUES( / / 李四 CFO );
INSERT INTO dbo Employees VALUES( / / / 王五 IT Manager );
INSERT INTO dbo Employees VALUES( / / / 赵六 Manager );
INSERT INTO dbo Employees VALUES( / / / / 洪七 Employee );
查看所有的员工
SELECT * FROM dbo Employees
>查看所有的员工及其级别
SELECT * Org_Id GetLevel() AS Level FROM Employees
>查看陈希章的所有下属
DECLARE @BOSS hierarchyid
SELECT @BOSS=Org_Id FROM Employees WHERE EmployeeID=
SELECT * Org_Id GetLevel()AS Level FROM Employees WHERE Org_Id IsDescendantOf(@BOSS)=
>查看赵六及其所有上级
DECLARE @Employee hierarchyid
SELECT @Employee=Org_Id FROM Employees WHERE EmployeeID=
SELECT * Org_Id GetLevel()AS Level FROM Employees WHERE @Employee IsDescendantOf(Org_Id)=
>与hierarchyid有关的一些函数主要有
GetAncestor 取得某一个级别的祖先
GetDescendant 取得某一个级别的子代
GetLevel 取得级别
GetRoot 取得根
IsDescendantOf 判断某个节点是否为某个节点的子代
Parse 将字符串转换为hierarchyid 该字符串的格式通常都是/ /这样的
Read
Read 从传入的 BinaryReader 读取 SqlHierarchyId 的二进制表示形式 并将 SqlHierarchyId 对象设置为该值 不能使用 Transact SQL 调用 Read 请改为使用 CAST 或 CONVERT
GetReparentedValue 可以用来移动节点(或者子树)
ToString 将hierarchyid转换为字符串 与parse正好相反
Write
cha138/Article/program/SQLServer/201311/22307相关参考
知识大全 安装sql server 2008 management提示已安装 SQL Server 2005
安装sqlserver2008management提示已安装SQLServer2005 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布
清理SQLServer2008日志文件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! SQL日志
SQLServer2008化茧成蝶 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 对于微软的SQ
知识大全 解决sql server 2008 不允许保存更改
>cha138/Article/program/SQLServer/201311/22306
根据设计惯例查询的时候主子表通过关键词字段关联查询查询语句如下 selecttopawordaqueryurlairankatitleabaiduurlaitrafficaitrafficbib
知识大全 Microsoft SQL Server 2008系统目录
MicrosoftSQLServer2008系统目录 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
完美卸载SQLServer2008的方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!控制面板&n
答疑:SQLServer2008的升级与部署 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Q现
浅析SQLServer2008企业级新特性 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! SQL
数据库工程师:SQLServer2008空间数据初探[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一