Share via


IsDescendantOf (Datenbank-Engine)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed Instance

Gibt TRUE zurück, wenn this ein Nachfolger von „parent“ ist.

Syntax

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

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.

Argumente

parent
Der hierarchyid-Knoten, für den der IsDescendantOf-Test ausgeführt werden sollte.

Rückgabetypen

SQL Server-Rückgabetyp: bit

CLR-Rückgabetyp: SqlBoolean

Bemerkungen

Gibt true für alle Knoten in der Teilstruktur zurück, die die übergeordnete Struktur als Stamm aufweisen, und false für alle anderen Knoten.

Das übergeordnete Element wird als sein eigener Nachfolger behandelt.

Beispiele

A. Verwenden von IsDescendantOf in einer WHERE-Klausel

Im folgenden Beispiel werden ein Manager sowie die Mitarbeiter angezeigt, die diesem direkt unterstellt sind.

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

B. Verwenden von IsDescendantOf zur Evaluierung einer Beziehung

Im folgenden Code werden drei Variablen deklariert und aufgefüllt. Dann wird die hierarchische Beziehung evaluiert und eines von zwei Ergebnissen auf Grundlage des Vergleiches zurückgegeben:

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. Aufrufen einer Common Language Runtime-Methode

Im folgenden Codeausschnitt wird die IsDescendantOf()-Methode aufgerufen.

this.IsDescendantOf(Parent)  

Weitere Informationen

hierarchyid-Datentyp-Methodenverweis
Hierarchische Daten (SQL Server)
hierarchyid (Transact-SQL)