Partager via


IsDescendantOf (moteur de base de données)

S’applique à : SQL ServerAzure SQL Database Azure SQL Managed Instance

Retourne la valeur True si this est un descendant de parent.

Syntaxe

-- Transact-SQL syntax  
child. IsDescendantOf ( parent )  
-- CLR syntax  
SqlHierarchyId IsDescendantOf (SqlHierarchyId parent )  

Remarque

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 (12.x) et versions antérieures, consultez la Documentation sur les versions antérieures.

Arguments

parent
Nœud hierarchyid pour lequel le test IsDescendantOf doit être effectué.

Types de retour

Type de retour SQL Server : bit

Type de retour CLR : SqlBoolean

Remarques

Retourne la valeur true pour tous les nœuds de la sous-arborescence dont la racine est le parent, et false pour tous les autres nœuds.

Le parent est considéré comme étant son propre descendant.

Exemples

R. Utilisation d'IsDescendantOf dans une clause WHERE

L'exemple suivant retourne un responsable et les employés qui travaillent sous ses ordres :

DECLARE @Manager hierarchyid  
SELECT @Manager = OrgNode FROM HumanResources.EmployeeDemo  
  WHERE LoginID = 'adventure-works\dylan0'  
  
SELECT * FROM HumanResources.EmployeeDemo  
WHERE OrgNode.IsDescendantOf(@Manager) = 1  

B. Utilisation d'IsDescendantOf pour évaluer une relation

Le code suivant déclare et remplit trois variables. Il évalue ensuite la relation hiérarchique et retourne l'un de deux résultats imprimés selon la comparaison :

DECLARE @Manager hierarchyid, @Employee hierarchyid, @LoginID nvarchar(256)  
SELECT @Manager = OrgNode FROM HumanResources.EmployeeDemo  
WHERE LoginID = 'adventure-works\terri0' ;  
  
SELECT @Employee = OrgNode, @LoginID = LoginID FROM HumanResources.EmployeeDemo  
  WHERE LoginID = 'adventure-works\rob0'  
  
IF @Employee.IsDescendantOf(@Manager) = 1  
   BEGIN  
    PRINT 'LoginID ' + @LoginID + ' is a subordinate of the selected Manager.'  
   END  
ELSE  
   BEGIN  
    PRINT 'LoginID ' + @LoginID + ' is not a subordinate of the selected Manager.' ;  
   END  

C. Appel d'une méthode CLR (Common Language Runtime)

L'extrait de code suivant appelle la méthode IsDescendantOf().

this.IsDescendantOf(Parent)  

Voir aussi

Référence de méthodes de type de données hierarchyid
Données hiérarchiques (SQL Server)
hierarchyid (Transact-SQL)