Partager via


Structure SqlHierarchyId

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

Espace de noms :  Microsoft.SqlServer.Types
Assembly :  Microsoft.SqlServer.Types (en Microsoft.SqlServer.Types.dll)

Syntaxe

'Déclaration
<CLSCompliantAttribute(True)> _
<SqlUserDefinedTypeAttribute(Format.UserDefined, IsByteOrdered := True,  _
    MaxByteSize := , Name := "SqlHierarchyId")> _
Public Structure SqlHierarchyId _
    Implements IBinarySerialize, INullable, IComparable
'Utilisation
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 prend en charge l'utilisation de structures, mais pas la déclaration de nouvelles structures.

Le type SqlHierarchyId expose les membres suivants.

Propriétés

  Nom Description
Propriété publique IsNull Gets a value indicating whether the SqlHierarchyId is nullune référence Null (Nothing dans Visual Basic).
Propriété publiqueMembre statique Null Gets a SqlHierarchyId with a hierarchy identification of nullune référence Null (Nothing dans Visual Basic).

Haut de la page

Méthodes

  Nom Description
Méthode publique CompareTo(Object) Returns a value indicating the results of a comparison between a SqlHierarchyId and an object.
Méthode publique CompareTo(SqlHierarchyId) Returns a value indicating the results of a comparison between two SqlHierarchyId nodes.
Méthode publique Equals Evaluates whether SqlHierarchyId and obj are equal. (remplace ValueType.Equals(Object).)
Méthode publique GetAncestor Retrieves the SqlHierarchyId node n levels up the hierarchical tree.
Méthode publique GetDescendant Gets the value of a descendant SqlHierarchyId node that is greater than child1 and less than child2.
Méthode publique GetHashCode Gets a hash of the path from the root node of the hierarchy tree to the SqlHierarchyId node. (remplace ValueType.GetHashCode().)
Méthode publique GetLevel Gets a value indicating the level of the SqlHierarchyId node in the hierarchical tree.
Méthode publique 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éthode publiqueMembre statique GetRoot Gets a value representing the root SqlHierarchyId node of the hierarchy.
Méthode publique GetType (hérité de Object.)
Méthode publique IsDescendantOf Gets a value indicating whether the SqlHierarchyId node is the descendant of the parent.
Méthode publiqueMembre statique Parse Converts the canonical string representation of a SqlHierarchyId node to a SqlHierarchyId value.
Méthode publique Read Reads from a specified binary reader into a SqlHierarchyId.
Méthode publique ToString Returns the canonical string representation of a SqlHierarchyId node from a SqlHierarchyId value. (remplace ValueType.ToString().)
Méthode publique Write Writes a SqlHierarchyId to a specified binary writer.

Haut de la page

Opérateurs

  Nom Description
Opérateur publicMembre statique Equality Evaluates whether two SqlHierarchyId nodes are equal.
Opérateur publicMembre statique GreaterThan Evaluates whether one specified SqlHierarchyId node is greater than another.
Opérateur publicMembre statique GreaterThanOrEqual Evaluates whether one specified SqlHierarchyId node is greater than or equal to another.
Opérateur publicMembre statique Inequality Evaluates whether two SqlHierarchyId nodes are unequal.
Opérateur publicMembre statique LessThan Evaluates whether one specified SqlHierarchyId node is less than another.
Opérateur publicMembre statique LessThanOrEqual Evaluates whether one specified SqlHierarchyId node is less than or equal to another.

Haut de la page

Notes

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.

Exemples

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

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

Sécurité des threads

Tous les membres publics static (Shared dans Visual Basic) de ce type sont thread-safe. Tous les membres de l'instance ne sont pas garantis comme étant thread-safe.

Voir aussi

Référence

Espace de noms Microsoft.SqlServer.Types