IsDescendantOf (Database Engine)
如果 <this> 是父系的下階,就會傳回 true。
語法
-- Transact-SQL syntax
child.IsDescendantOf ( parent )
-- CLR syntax
SqlHierarchyId IsDescendantOf (SqlHierarchyId parent )
引數
- parent
應該執行 IsDescendantOf 測試的 hierarchyid 節點。
傳回類型
**SQL Server 傳回類型:**bit
**CLR 傳回類型:**SqlBoolean
備註
針對位於父系之子樹中的所有節點傳回 true,而針對所有其他節點傳回 false。
父系會被視為自己的下階。
範例
A. 在 WHERE 子句中使用 IsDescendantOf
下列範例會傳回經理以及向經理提出報告的員工:
DECLARE @Manager hierarchyid
SELECT @Manager = OrgNode FROM HumanResources.EmployeeDemo
WHERE LoginID = 'adventure-works\dylan0'
SELECT * FROM HumanResources.EmployeeDemo
WHERE OrgNode.IsDescendantOf(@Manager) = 1
B. 使用 IsDescendantOf 來評估關聯性
下列程式碼會宣告並填入三個變數。然後,它會評估階層式關聯性,並且根據比較,傳回兩個列印結果的其中之一:
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. 呼叫 Common Language Runtime 方法
下列程式碼片段會呼叫 IsDescendantOf() 方法。
this.IsDescendantOf(Parent)