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)
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по