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)