IsDescendantOf(데이터베이스 엔진)
적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance
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. 공용 언어 런타임 메서드 호출
다음 코드 조각은 메서드를 호출합니다 IsDescendantOf()
.
this.IsDescendantOf(Parent)
참고 항목
hierarchyid 데이터 형식 메서드 참조
계층적 데이터(SQL Server)
hierarchyid(Transact-SQL)
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기