Dans un index à largeur prioritaire, tous les enfants directs d'un nud sont colocalisés. Les index àlargeur prioritaire sont par conséquent efficaces pour répondre aux requêtes sur les enfantsimmédiats. Cette Indexation peut être mise en uvre grâce à la méthode
getlevel()
fournie parhierarchyid.
USE HierarchyidTest;GOCREATE TABLE Groups(GroupHid hierarchyid,GroupLevel as GroupHid.GetLevel(),GroupName nvarchar(50) NOT NULL) ;GO
Les méthodes associées au type Hierarchyid
Avec lapparition du type hierarchyid, des méthodes permettant la manipulation de ce dernier on vule jour. Ci-dessous la liste des méthodes détaillées par la suite :GetAncestor(int n), GetDescendant(hierarchyid childA, hierarchyid childB), GetLevel(), GetRoot(),IsDescendantOf(hierarchyid Parent), Parse(nvarchar NodeRepresentation), Read(),GetReparentedValue(hierarchyid OldRoot, hierarchyid NewRoot), ToString(), Write()
1)
La méthode GetAncestor
Cette méthode permet de Retourner le parent de nième niveau du nud sélectionné, n étant passéen paramètre de la méthode.Si un nombre supérieur au niveau de hiérarchie du nud est passé la méthode retournera Null etelle lèvera une exception si le paramètre est un nombre négatif.
E
xemple :
SelectGroupNodeFromdbo.Groups
WhereGroupNode.GetAncestor(1) =@GroupHId
Add a Comment