IsDescendantOf (Mecanismo de Banco de Dados)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do Azure

Retornará true se this for descendente de um pai.

Sintaxe

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

Observação

Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.

Argumentos

parent
O nó hierarchyid para o qual o teste IsDescendantOf deve ser executado.

Tipos de retorno

SQL Server return type:bit

CLR return type:SqlBoolean

Comentários

Retornar true para todos os nós na subárvore com raiz em pai e false para todos os outros nós.

Pai é considerado seu próprio descendente.

Exemplos

a. Usando IsDescendantOf em uma cláusula WHERE

O exemplo a seguir retorna um gerente e os funcionários que pertencem àquele gerente:

DECLARE @Manager hierarchyid  
SELECT @Manager = OrgNode FROM HumanResources.EmployeeDemo  
  WHERE LoginID = 'adventure-works\dylan0'  
  
SELECT * FROM HumanResources.EmployeeDemo  
WHERE OrgNode.IsDescendantOf(@Manager) = 1  

B. Usando IsDescendantOf para avaliar uma relação

O código a seguir declara e popula três variáveis. Depois, ele avalia a relação hierárquica e retorna um dos dois resultados impressos com base na comparação:

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. Chamando um método de Common Language runtime

O snippet de código a seguir chama o método IsDescendantOf().

this.IsDescendantOf(Parent)  

Confira também

Referência de método de tipo de dados hierarchyid
Dados hierárquicos (SQL Server)
hierarchyid (Transact-SQL)