Share via


IsDescendantOf (Datenbankmodul)

Gibt true zurück, wenn dies ein Nachfolger des übergeordneten Elements ist.

Syntax

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

-- CLR syntax
SqlHierarchyId IsDescendantOf ( SqlHierarchyId parent )

Argumente

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

Rückgabetypen

**SQL Server-Rückgabetyp:**bit

**CLR-Rückgabetyp:**SqlBoolean

Hinweise

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)