알고보면 기존 버전에서 계층형 설계에 사용하던 materialized path 개념과 같지만... 코드 작성은 훨씬 편해졌습니다.

이제 개념은 잡았으니... 메서드 목록만 적어 놓으면 될 듯...
GetAncestor()

현재 항목의 n번째 상위 항목을 나타내는 hierarchyid를 반환합니다.

child.GetAncestor(n)

GetDescendant()

부모의 자식 노드를 반환합니다.

parent.GetDescendant (child1, child2)

parent가 NULL인 경우 NULL을 반환합니다.
parent가 NULL이 아니고 child1과 child2가 모두 NULL인 경우 부모의 자식을 반환합니다.
parent와 child1이 NULL이 아니고 child2가 NULL인 경우 child1보다 큰 부모의 자식을 반환합니다.
parent와 child2가 NULL이 아니고 child1이 NULL인 경우 child2보다 작은 부모의 자식을 반환합니다.
parent, child1 및 child2가 NULL이 아닌 경우 child1보다 크고 child2보다 작은 모의 자식을 반환합니다.
child1이 NULL도 아니고 부모의 자식도 아닌 경우 예외가 발생합니다.
child2가 NULL도 아니고 부모의 자식도 아닌 경우 예외가 발생합니다.
child1이 child2보가 크거나 같으면 예외가 발생합니다.

GetLevel()

트리에서 노드의 깊이를 나타내는 정수를 반환합니다.

node.GetLevel()

GetRoot()

계층 트리의 루트를 반환합니다.

hierarchyid::GetRoot()

IsDescendantOf()  BOL의 설명이 잘 못 되어 있어 수정 (2009년 5월 BOL 기준)

자식이 현재 항목의 하위 항목일 경우 true를 반환합니다.

child.IsDescendantOf(parent)

GetReparentedValue()

oldRoot에서 newRoot 노드로 특정 노드의 부모 노드를 변경했을 때 특정 노드가 가져야야하는 새로운 노드를 반환합니다.

node.GetReparentedValue (oldRoot, newRoot)

hierarchyid <-> string 변환

ToString()
Parse()

T-SQL을 사용하여 호출할 수 없는 method

Read()
Write()

2009/08/10 12:11 2009/08/10 12:11

Trackback Address :: https://youngsam.net/trackback/694