IsDescendantOf (компонент Database Engine)IsDescendantOf (Database Engine)

ОБЛАСТЬ ПРИМЕНЕНИЯ:даSQL Server (начиная с 2008)даБаза данных SQL AzureдаХранилище данных SQL AzureнетParallel Data WarehouseAPPLIES TO: yesSQL Server (starting with 2008) yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Возвращает значение true, если this является потомком родительского элемента.Returns true if this is a descendant of parent.

СинтаксисSyntax

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

АргументыArguments

parentparent
Узел hierarchyid, для которого следует выполнить проверку IsDescendantOf.The hierarchyid node for which the IsDescendantOf test should be performed.

Типы возвращаемых данныхReturn Types

Возвращаемый тип SQL Server:bitSQL Server return type:bit

Возвращаемый тип CLR:SqlBooleanCLR return type:SqlBoolean

RemarksRemarks

Возвращает значение true для всех узлов поддерева, корнем для которых является родительский элемент, и значение false для всех остальных узлов.Returns true for all the nodes in the sub-tree rooted at parent, and false for all other nodes.

Родительский элемент считается своим собственным потомком.Parent is considered its own descendant.

ПримерыExamples

A.A. Использование функции IsDescendantOf в предложении WHEREUsing IsDescendantOf in a WHERE clause

В следующем примере возвращается имя руководителя и имена подотчетных ему сотрудников:The following example returns a manager and the employees that report to the manager:

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 для оценки связиUsing IsDescendantOf to evaluate a relationship

В следующем фрагменте кода объявляются и заполняются три переменные.The following code declares and populates three variables. Затем оценивается иерархическая связь и возвращается один из двух печатаемых результатов на основе сравнения:It then evaluates the hierarchical relationship and returns one of two printed results based on the comparison:

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. Вызов метода CLRCalling a common language runtime method

В следующем фрагменте кода вызывается метод IsDescendantOf().The following code snippet calls the IsDescendantOf() method.

this.IsDescendantOf(Parent)  

См. также разделSee also

Справочник по методам типа данных hierarchyidhierarchyid Data Type Method Reference
Иерархические данные (SQL Server)Hierarchical Data (SQL Server)
hierarchyid (Transact-SQL)hierarchyid (Transact-SQL)