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

Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

Возвращает значение true, если this является потомком родительского элемента.

Синтаксис

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

Примечание.

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

Аргументы

parent
Узел hierarchyid, для которого следует выполнить проверку IsDescendantOf.

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

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

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

Замечания

Возвращает значение true для всех узлов поддерева, корнем для которых является родительский элемент, и значение false для всех остальных узлов.

Родительский элемент считается своим собственным потомком.

Примеры

А. Использование функции IsDescendantOf в предложении WHERE

В следующем примере возвращается имя руководителя и имена подотчетных ему сотрудников:

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. Вызов метода CLR

В следующем фрагменте кода вызывается метод IsDescendantOf().

this.IsDescendantOf(Parent)  

См. также

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