SqlHierarchyId 结构
SqlHierarchyId 类型表示层次结构中的一个位置,并且指定深度和广度。
命名空间: Microsoft.SqlServer.Types
程序集: Microsoft.SqlServer.Types(位于 Microsoft.SqlServer.Types.dll)
语法
[SqlUserDefinedTypeAttribute(Format.UserDefined, IsByteOrdered = true,
MaxByteSize = 892, Name = "SqlHierarchyId")]
public struct SqlHierarchyId : IBinarySerialize, INullable, IComparable
[SqlUserDefinedTypeAttribute(Format::UserDefined, IsByteOrdered = true,
MaxByteSize = 892, Name = "SqlHierarchyId")]
public value struct SqlHierarchyId : IBinarySerialize, INullable,
IComparable
[<Sealed>]
[<SqlUserDefinedTypeAttribute(Format.UserDefined, IsByteOrdered = true,
MaxByteSize = 892, Name = "SqlHierarchyId")>]
type SqlHierarchyId =
struct
interface IBinarySerialize
interface INullable
interface IComparable
end
<SqlUserDefinedTypeAttribute(Format.UserDefined, IsByteOrdered := True,
MaxByteSize := 892, Name := "SqlHierarchyId")>
Public Structure SqlHierarchyId
Implements IBinarySerialize, INullable, IComparable
属性
名称 | 说明 | |
---|---|---|
IsNull | 获取一个值,该值指示 SqlHierarchyId 是否为 null。 |
|
Null | 获取层次结构标识为 null 的 SqlHierarchyId。 |
方法
名称 | 说明 | |
---|---|---|
CompareTo(Object) | 返回一个值,该值指示 SqlHierarchyId 和某一对象之间的比较结果。 |
|
CompareTo(SqlHierarchyId) | 返回一个值,该值指示两个 SqlHierarchyId 节点之间的比较结果。 |
|
Equals(Object) | 计算 SqlHierarchyId 和 obj 是否相等。(覆盖 ValueType.Equals(Object)。) |
|
GetAncestor(Int32) | 在层次结构树中向上检索 SqlHierarchyId 节点 n 个级别。 |
|
GetDescendant(SqlHierarchyId, SqlHierarchyId) | 获取大于 child1 且小于 child2 的后代 SqlHierarchyId 节点的值。 |
|
GetHashCode() | 获取从层次结构树的根节点到 SqlHierarchyId 节点的路径的哈希值。(覆盖 ValueType.GetHashCode()。) |
|
GetLevel() | 获取一个值,该值指示在层次结构树中 SqlHierarchyId 节点的级别。 |
|
GetReparentedValue(SqlHierarchyId, SqlHierarchyId) | 获取一个值,该值表示新的 SqlHierarchyId 节点的位置,该节点具有从 newRoot 开始的路径,该路径等于从 oldRoot 到 this 的路径,并且有效地将 this 移到这个新位置。. |
|
GetRoot() | 获取一个值,该值表示层次结构的根 SqlHierarchyId 节点。 |
|
GetType() | (继承自 Object。) |
|
IsDescendantOf(SqlHierarchyId) | 获取一个值,该值指示 SqlHierarchyId 节点是否是父级的后代。 |
|
Parse(SqlString) | 将 SqlHierarchyId 节点的规范字符串表示形式转换为 SqlHierarchyId 值。 |
|
Read(BinaryReader) | 从指定的二进制读取器读入 SqlHierarchyId。 |
|
ToString() | 从 SqlHierarchyId 值返回 SqlHierarchyId 节点的规范字符串表示形式。(覆盖 ValueType.ToString()。) |
|
Write(BinaryWriter) | 将 SqlHierarchyId 写入指定的二进制编写器。 |
运算符
名称 | 说明 | |
---|---|---|
Equality(SqlHierarchyId, SqlHierarchyId) | 计算两个 SqlHierarchyId 节点是否相等。 |
|
GreaterThan(SqlHierarchyId, SqlHierarchyId) | 计算一个指定的 SqlHierarchyId 节点是否大于另一个节点。 |
|
GreaterThanOrEqual(SqlHierarchyId, SqlHierarchyId) | 计算一个指定的 SqlHierarchyId 节点是否大于或等于另一个节点。 |
|
Inequality(SqlHierarchyId, SqlHierarchyId) | 计算两个 SqlHierarchyId 节点是否不相等。 |
|
LessThan(SqlHierarchyId, SqlHierarchyId) | 计算一个指定的 SqlHierarchyId 节点是否小于另一个节点。 |
|
LessThanOrEqual(SqlHierarchyId, SqlHierarchyId) | 计算一个指定的 SqlHierarchyId 节点是否小于或等于另一个节点。 |
备注
此类用于存储分层信息中提供了以下好处︰
非常紧凑的数据存储。
深度优先比较。 此类型上的索引深度优先顺序且深度优先遍历中彼此相近的节点存储彼此靠近。
支持随意插入和删除。
这种类型的限制是层次结构的数据类型的单个实例可能会不大于 892 字节。 具有太多级别,以满足此限制内的层次结构必须使用不同的数据类型。
HierarchyId 类型与 SqlHierarchyId 数据类型一样,可供 CLR 客户端使用。
示例
DECLARE @employee hierarchyid
SELECT @employee = OrgNode FROM HumanResources.EmployeeDemo
WHERE LoginID = 'adventure-works\dylan0'
SELECT * FROM HumanResources.EmployeeDemo
WHERE @employee.IsDescendantOf(OrgNode) = 1
线程安全
此类型的所有公共静态(Visual Basic 中的 已共享 在 Visual Basic 中)成员都是线程安全的。不保证所有实例成员都是线程安全的。
另请参阅
Microsoft.SqlServer.Types 命名空间
返回页首