다음을 통해 공유


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)