SQL Server 2008 层次ID数据类型
目录
准备工作1
练习:使用HierarchyID数据类型2
准备工作
预计完成本实验所需的时间
40 分钟
目标
在完成本实验后,您将可以:
处理SQL Server 2008当中的层次ID数据类型
先决条件
在完成本实验前,您必须具有:
编写Transact-SQL 脚本与使用SQL Server Management Studio的相关经验。
实验场景
SQL Server 2008允许数据库应用程序以一种比现有方法更为高效的方式来构建树状结构。HierarchyId是一种新的系统类型,它存储的值可以表示在一个层次结构树中的结点。这种新的类型提供了一种非常灵活的编程模型。它实现为一个CLR UDT,并开放了许多高效、有用的内置方法,用来创建和操作层次结构中的结点。
虚拟机环境
从开始菜单或桌面上启用Microsoft Virtual PC 。如果Virtual PC 控制台没有启用,请查看系统托盘,然后双击系统托盘当中的Microsoft Virtual PC 。
选择Sql08 然后点击Start。
在虚拟机运行起来后,可以通过点击右Alt+Del 来向虚拟机发送一个Ctrl+Alt+Del 命令。
在登录窗口中,输入以下信息:
User name: administrator
Password: password01!
练习:使用HierarchyID数据类型
在SQL Server 2008 中,允许数据库应用程序以一种比现有方法更为高效的方式来构建树状结构。HierarchyId是一种新的系统类型,它存储的值可以表示在一个层次结构树中的结点。这种新的类型提供了一种非常灵活的编程模型。它实现为一个CLR UDT,并开放了许多高效、有用的内置方法,用来创建和操作层次结构中的结点。
在本实验中,我们希望在数据库中存储公司部门的组织结构关系。首先,我们使用传统的方式进行组织关系的存储。
原有组织结构存储方式
打开C:SQLHOLS 文件夹,然后打开HierarchyID 目录当中的 “HierarchyID Data Type Demo”文件。
在窗口打开后,点击窗体上方工具条上的Execute 按钮,然后将看到如下图所示的执行结果:
可以看到,在原有数据库中,企业部门的组织结构关系,使用数据行中的ParentID来表示该部门的上级部门。
点击Next按钮。
查询原有组织结构
要查询原有组织结构关系,我们需要使用循环的方式进行查询,仔细阅读查询语句,然后点击工具条上的Execute,执行T-SQL语句。
此时,看到如下结果:
在窗口打开后,点击窗体上方工具条上的Execute 按钮,然后将看到如下图所示的执行结果:
点击Next按钮。
使用HierarchyID创建组织结构关系
仔细阅读查询语句,然后点击工具条上的Execute,执行T-SQL语句。
此时,看到如下结果:
点击Next按钮。
为了创建后续的部门数据,我们创建一个存储过程AddDepartmentNew,前面两个参数是部门的ID和名称,第三个参数是上级部门的ID。然后,使用刚刚创建的存储过程添加部门数据。仔细阅读查询语句,然后点击工具条上的Execute,执行T-SQL语句。
此时,看到如下结果:
点击Next按钮。
使用HierarchyID进行查询
接下来,我们使用HierarchyID进行查询,此时,可以使用HierarchyID数据类型的一些方法来进行数据的查询。仔细阅读查询语句,然后点击工具条上的Execute,执行T-SQL语句。
此时,看到如下结果:
点击Next按钮。
要对比两种查询,可以点击窗体上方工具条上的Execute 按钮,然后将看到如下图所示的比较结果:
点击Next按钮。