Partilhar via


Estrutura SqlHierarchyId

The SqlHierarchyId type represents a position in a hierarchical structure, specifying depth and breadth.

Namespace:  Microsoft.SqlServer.Types
Assembly:  Microsoft.SqlServer.Types (em Microsoft.SqlServer.Types.dll)

Sintaxe

'Declaração
<CLSCompliantAttribute(True)> _
<SqlUserDefinedTypeAttribute(Format.UserDefined, IsByteOrdered := True,  _
    MaxByteSize := , Name := "SqlHierarchyId")> _
Public Structure SqlHierarchyId _
    Implements IBinarySerialize, INullable, IComparable
'Uso
Dim instance As SqlHierarchyId
[CLSCompliantAttribute(true)]
[SqlUserDefinedTypeAttribute(Format.UserDefined, IsByteOrdered = true, 
    MaxByteSize = , Name = "SqlHierarchyId")]
public struct SqlHierarchyId : IBinarySerialize, 
    INullable, IComparable
[CLSCompliantAttribute(true)]
[SqlUserDefinedTypeAttribute(Format::UserDefined, IsByteOrdered = true, 
    MaxByteSize = , Name = L"SqlHierarchyId")]
public value class SqlHierarchyId : IBinarySerialize, 
    INullable, IComparable
[<SealedAttribute>]
[<CLSCompliantAttribute(true)>]
[<SqlUserDefinedTypeAttribute(Format.UserDefined, IsByteOrdered = true, 
    MaxByteSize = , Name = "SqlHierarchyId")>]
type SqlHierarchyId =  
    struct 
        interface IBinarySerialize 
        interface INullable 
        interface IComparable 
    end
JScript dá suporte ao uso de estruturas, mas não à declaração de estruturas novas.

O tipo SqlHierarchyId expõe os membros a seguir.

Propriedades

  Nome Descrição
Propriedade pública IsNull Gets a value indicating whether the SqlHierarchyId is nulluma referência nula (Nothing no Visual Basic).
Propriedade públicaMembro estático Null Gets a SqlHierarchyId with a hierarchy identification of nulluma referência nula (Nothing no Visual Basic).

Início

Métodos

  Nome Descrição
Método público CompareTo(Object) Returns a value indicating the results of a comparison between a SqlHierarchyId and an object.
Método público CompareTo(SqlHierarchyId) Returns a value indicating the results of a comparison between two SqlHierarchyId nodes.
Método público Equals Evaluates whether SqlHierarchyId and obj are equal. (Substitui ValueType.Equals(Object).)
Método público GetAncestor Retrieves the SqlHierarchyId node n levels up the hierarchical tree.
Método público GetDescendant Gets the value of a descendant SqlHierarchyId node that is greater than child1 and less than child2.
Método público GetHashCode Gets a hash of the path from the root node of the hierarchy tree to the SqlHierarchyId node. (Substitui ValueType.GetHashCode().)
Método público GetLevel Gets a value indicating the level of the SqlHierarchyId node in the hierarchical tree.
Método público GetReparentedValue 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.
Método públicoMembro estático GetRoot Gets a value representing the root SqlHierarchyId node of the hierarchy.
Método público GetType (Herdado de Object.)
Método público IsDescendantOf Gets a value indicating whether the SqlHierarchyId node is the descendant of the parent.
Método públicoMembro estático Parse Converts the canonical string representation of a SqlHierarchyId node to a SqlHierarchyId value.
Método público Read Reads from a specified binary reader into a SqlHierarchyId.
Método público ToString Returns the canonical string representation of a SqlHierarchyId node from a SqlHierarchyId value. (Substitui ValueType.ToString().)
Método público Write Writes a SqlHierarchyId to a specified binary writer.

Início

Operadores

  Nome Descrição
Operador públicoMembro estático Equality Evaluates whether two SqlHierarchyId nodes are equal.
Operador públicoMembro estático GreaterThan Evaluates whether one specified SqlHierarchyId node is greater than another.
Operador públicoMembro estático GreaterThanOrEqual Evaluates whether one specified SqlHierarchyId node is greater than or equal to another.
Operador públicoMembro estático Inequality Evaluates whether two SqlHierarchyId nodes are unequal.
Operador públicoMembro estático LessThan Evaluates whether one specified SqlHierarchyId node is less than another.
Operador públicoMembro estático LessThanOrEqual Evaluates whether one specified SqlHierarchyId node is less than or equal to another.

Início

Comentários

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.

Exemplos

DECLARE @employee hierarchyid
SELECT @employee = OrgNode FROM HumanResources.EmployeeDemo
  WHERE LoginID = 'adventure-works\dylan0'

SELECT * FROM HumanResources.EmployeeDemo
WHERE @employee.IsDescendantOf(OrgNode) = 1

Segurança de thread

Qualquer membro público static (Shared no Visual Basic) desse tipo é seguro para threads. Não há garantia de que qualquer membro de instância seja seguro para threads.

Consulte também

Referência

Namespace Microsoft.SqlServer.Types