共用方式為


IsDescendantOf (Database Engine)

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體

this 為父代的子系,便會傳回 true。

Syntax

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

注意

若要檢視 SQL Server 2014 (12.x) 和舊版的 Transact-SQL 語法,請參閱 舊版檔

引數

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)  

另請參閱

Hierarchyid 資料類型方法參考
階層式資料 (SQL Server)
hierarchyid (Transact-SQL)