IsDescendantOf(데이터베이스 엔진)
this가 부모의 하위 항목인 경우 True를 반환합니다.
구문
-- Transact-SQL syntax
child. IsDescendantOf ( parent )
-- CLR syntax
SqlHierarchyId IsDescendantOf (SqlHierarchyId parent )
인수
- parent
IsDescendantOf 테스트가 수행되어야 하는 hierarchyid 노드입니다.
반환 형식
SQL Server 반환 형식: bit
CLR 반환 형식: SqlBoolean
주의
부모에서 시작하는 하위 트리의 모든 노드에 대해서는 true를 반환하고 다른 모든 노드에 대해서는 false를 반환합니다.
부모는 자신의 하위 항목으로 간주됩니다.
예
1.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
2.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
3.공용 언어 런타임 메서드 호출
다음 코드 조각은 IsDescendantOf() 메서드를 호출합니다.
this.IsDescendantOf(Parent)