IsDescendantOf (aparat bazy danych)
Dotyczy:sql Server
Azure SQL Database
Azure SQL Managed Instance
SQL Database w usłudze Microsoft Fabric
Zwraca wartość true, jeśli tym jest elementem potomnym elementu nadrzędnego.
Składnia
-- Transact-SQL syntax
child. IsDescendantOf ( parent )
-- CLR syntax
SqlHierarchyId IsDescendantOf (SqlHierarchyId parent )
Argumenty
nadrzędna
hierarchyid węzła, dla którego należy wykonać test IsDescendantOf.
Typy zwracane
zwracany typ programu SQL Server:bit
zwracany typ clR:SqlBoolean
Uwagi
Zwraca wartość true dla wszystkich węzłów w pod drzewie nadrzędnym i false dla wszystkich innych węzłów.
Element nadrzędny jest uważany za własny element potomny.
Przykłady
A. Używanie metody IsDescendantOf w klauzuli WHERE
Poniższy przykład zwraca menedżera i pracowników, którzy zgłaszają go menedżerowi:
DECLARE @Manager hierarchyid
SELECT @Manager = OrgNode FROM HumanResources.EmployeeDemo
WHERE LoginID = 'adventure-works\dylan0'
SELECT * FROM HumanResources.EmployeeDemo
WHERE OrgNode.IsDescendantOf(@Manager) = 1
B. Używanie metody IsDescendantOf do oceny relacji
Poniższy kod deklaruje i wypełnia trzy zmienne. Następnie oblicza relację hierarchiczną i zwraca jeden z dwóch wydrukowanych wyników na podstawie porównania:
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. Wywoływanie metody środowiska uruchomieniowego języka wspólnego
Poniższy fragment kodu wywołuje metodę IsDescendantOf()
.
this.IsDescendantOf(Parent)
Zobacz też
hierarchyid odwołanie do metody typu danych
danych hierarchicznych (SQL Server)
hierarchyid (Transact-SQL)