成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺談SQL Server 2008中新增屬性Hierarchyid

數據庫 SQL Server 數據庫運維
我們將簡單談談SQL Server 2008中新增屬性Hierarchyid。Hierarchyid是SQL Server 2008的一個重要新增特性,主要解決的問題是擁有層次關系的表格。

例如我們日常生活中用到最多的組織結構圖。我們一般會用一個Employees表保存員工數據,而每個員工則又可能會有相應的上級。以前要得到某個員工的所有上級,或者所有下級,通常所采取的方法都是遞歸。SQL Server 2005開始支持的CTE從一定程序上方便了該工作的實現。

但SQL 2008的hierarchyid讓這個工作更加簡化和直接。而該類型其實是一個CLR自定義數據類型。

image

一般我們使用的時候,如下面的例子

--創建表
CREATE TABLE Employees
(
    Org_Id hierarchyid NOT NULL,
    EmployeeId INT NOT NULL,
    EmployeeName VARCHAR(50) NOT NULL,
    Title VARCHAR(50) NOT NULL
)
GO

--插入一些員工,注意第一個列的格式,必須用/開始和結束。這是一個路徑的符號。這是一個關鍵

INSERT INTO dbo.Employees VALUES('/',10000,'陳希章','CEO');
INSERT INTO dbo.Employees VALUES('/1/',10001,'張三','CTO');
INSERT INTO dbo.Employees VALUES('/2/',10002,'李四','CFO');
INSERT INTO dbo.Employees VALUES('/1/1/',10003,'王五','IT Manager');
INSERT INTO dbo.Employees VALUES('/1/2/',10004,'趙六','Manager');
INSERT INTO dbo.Employees VALUES('/1/1/1/',10005,'洪七','Employee');

--查看所有的員工

SELECT * FROM dbo.Employees 

image


--查看所有的員工及其級別
SELECT *,Org_Id.GetLevel() AS Level FROM Employees

image

--查看陳希章的所有下屬

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

image

--查看趙六及其所有上級
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

image

與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。

【編輯推薦】

  1. 詳解如何刪除SQL Server表中的重復行
  2. SQL Server快速獲取表的記錄總數
  3. SQL Server 2008的全面分析擴展解決方案
責任編輯:彭凡 來源: 博客園
相關推薦

2010-06-03 17:22:27

2009-06-22 10:22:57

SQL Server

2012-04-16 09:55:38

SQL Server

2011-08-19 14:26:42

SQL Server 分層數據類型

2010-07-19 13:22:45

SQL Server

2010-06-03 11:39:33

2010-09-13 09:45:17

sql server2

2009-04-16 18:15:19

動作審核審核活動SQL Server

2009-04-16 17:44:31

2010-09-13 09:58:17

SQL Server2

2012-04-13 13:26:30

SQL Server

2009-04-16 17:03:12

報表開發工具報表制作SQL Server

2013-03-13 09:53:50

SQL Server

2010-03-26 09:46:32

SQL Server

2010-02-04 09:17:26

Visual Stud

2010-06-29 17:17:44

SQL Server鎖

2009-06-12 11:27:25

2009-04-16 17:11:39

管理報表配置報表SQL Server

2011-03-24 10:19:58

SQL Server2CPU性能監控

2011-08-19 10:13:34

SQL Server Values新用途
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品久久久久一区二区三区 | 亚洲一区视频在线 | 999www视频免费观看 | 亚洲午夜久久久 | 欧美涩 | 国产一区2区 | 亚洲欧美国产精品一区二区 | 欧美高清视频一区 | 欧美一区二区在线看 | 精品一区二区三区在线观看 | 国产成人综合亚洲欧美94在线 | 黄色成人国产 | 中文字幕国产 | 久草在线视频中文 | 精品国产乱码久久久久久a丨 | 99在线免费观看视频 | 麻豆av一区二区三区久久 | 欧美一级片在线看 | 一区二区三区四区不卡视频 | 久久久久国产成人精品亚洲午夜 | 免费国产视频 | 一级视频黄色 | 国产成人精品午夜 | 欧美性网 | 欧美一区二区三区视频 | 成人av一区二区三区 | 国精产品一品二品国精在线观看 | 亚洲精品二区 | 东京久久 | 毛片一区二区三区 | 日韩av一区二区在线观看 | 国产在线观看av | 久久久久久亚洲精品 | 久久99精品久久 | 亚洲精品18| 中文字幕中文字幕 | 亚洲视频一区二区三区四区 | 日韩精品一区在线 | 国产精品99久久久久久人 | 日韩在线播放av | 欧美成人一区二区 |