SqlHierarchyId Structure
The SqlHierarchyId type represents a position in a hierarchical structure, specifying depth and breadth.
Assembly: Microsoft.SqlServer.Types (in Microsoft.SqlServer.Types.dll)
| Name | Description | |
|---|---|---|
![]() | CompareTo(Object^) | Returns a value indicating the results of a comparison between a SqlHierarchyId and an object. |
![]() | CompareTo(SqlHierarchyId) | Returns a value indicating the results of a comparison between two SqlHierarchyId nodes. |
![]() | Equals(Object^) | Evaluates whether SqlHierarchyId and obj are equal.(Overrides ValueType::Equals(Object^).) |
![]() | GetAncestor(Int32) | Retrieves the SqlHierarchyId node n levels up the hierarchical tree. |
![]() | GetDescendant(SqlHierarchyId, SqlHierarchyId) | Gets the value of a descendant SqlHierarchyId node that is greater than child1 and less than child2. |
![]() | GetHashCode() | Gets a hash of the path from the root node of the hierarchy tree to the SqlHierarchyId node.(Overrides ValueType::GetHashCode().) |
![]() | GetLevel() | Gets a value indicating the level of the SqlHierarchyId node in the hierarchical tree. |
![]() | GetReparentedValue(SqlHierarchyId, SqlHierarchyId) | Gets a value representing the location of a new SqlHierarchyId node that has a path from newRoot equal to the path from oldRoot to this, effectively moving this to the new location. |
![]() ![]() | GetRoot() | Gets a value representing the root SqlHierarchyId node of the hierarchy. |
![]() | GetType() | (Inherited from Object.) |
![]() | IsDescendantOf(SqlHierarchyId) | Gets a value indicating whether the SqlHierarchyId node is the descendant of the parent. |
![]() ![]() | Parse(SqlString) | Converts the canonical string representation of a SqlHierarchyId node to a SqlHierarchyId value. |
![]() | Read(BinaryReader^) | Reads from a specified binary reader into a SqlHierarchyId. |
![]() | ToString() | Returns the canonical string representation of a SqlHierarchyId node from a SqlHierarchyId value.(Overrides ValueType::ToString().) |
![]() | Write(BinaryWriter^) | Writes a SqlHierarchyId to a specified binary writer. |
| Name | Description | |
|---|---|---|
![]() ![]() | Equality(SqlHierarchyId, SqlHierarchyId) | Evaluates whether two SqlHierarchyId nodes are equal. |
![]() ![]() | GreaterThan(SqlHierarchyId, SqlHierarchyId) | Evaluates whether one specified SqlHierarchyId node is greater than another. |
![]() ![]() | GreaterThanOrEqual(SqlHierarchyId, SqlHierarchyId) | Evaluates whether one specified SqlHierarchyId node is greater than or equal to another. |
![]() ![]() | Inequality(SqlHierarchyId, SqlHierarchyId) | Evaluates whether two SqlHierarchyId nodes are unequal. |
![]() ![]() | LessThan(SqlHierarchyId, SqlHierarchyId) | Evaluates whether one specified SqlHierarchyId node is less than another. |
![]() ![]() | LessThanOrEqual(SqlHierarchyId, SqlHierarchyId) | Evaluates whether one specified SqlHierarchyId node is less than or equal to another. |
This type provides the following benefits for storing hierarchical information:
Very compact data storage.
Depth-first comparison. Indexes on this type are in depth-first order, and nodes close to each other in a depth-first traversal are stored near each other.
Support for arbitrary insertions and deletions.
A limitation of this type is that a single instance of the hierarchy data type can be no larger than 892 bytes. Hierarchies that possess too many levels to fit within this limitation must use a different data type.
The HierarchyId type is available to CLR clients as the SqlHierarchyId data type.
DECLARE @employee hierarchyid SELECT @employee = OrgNode FROM HumanResources.EmployeeDemo WHERE LoginID = 'adventure-works\dylan0' SELECT * FROM HumanResources.EmployeeDemo WHERE @employee.IsDescendantOf(OrgNode) = 1
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.



