IsDescendantOf (Motore di database)

Si applica a:SQL Server database SQL di Azure Istanza gestita di SQL di Azure

Restituisce true se l'elemento è un discendente dell'elemento padre.

Sintassi

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

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere la documentazione delle versioni precedenti.

Argomenti

parent
Nodo hierarchyid per cui il test IsDescendantOf deve essere eseguito.

Tipi restituiti

Tipo SQL Server restituito: bit

Tipo CLR restituito: SqlBoolean

Osservazioni:

Restituisce true per tutti i nodi nel sottoalbero con radice nel padre specificato e false per tutti gli altri nodi.

Un padre è considerato discendente di se stesso.

Esempi

R. Utilizzo di IsDescendantOf in una clausola WHERE

Nell'esempio seguente vengono restituiti un responsabile e i relativi dipendenti diretti:

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

B. Utilizzo di IsDescendantOf per valutare una relazione

Nel codice seguente vengono dichiarate tre variabili cui vengono assegnati i valori relativi. Viene quindi valutata la relazione gerarchica e restituito uno dei due risultati stampati in base al confronto:

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. Chiamata a un metodo Common Language Runtime

Nel frammento di codice seguente viene chiamato il metodo IsDescendantOf().

this.IsDescendantOf(Parent)  

Vedi anche

Guida di riferimento ai metodi per il tipo di dati hierarchyid
Dati gerarchici (SQL Server)
hierarchyid (Transact-SQL)