IsDescendantOf (motor de base de datos)
se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL Database en Microsoft Fabric
Devuelve true si this es descendiente del elemento primario.
Sintaxis
-- Transact-SQL syntax
child. IsDescendantOf ( parent )
-- CLR syntax
SqlHierarchyId IsDescendantOf (SqlHierarchyId parent )
Argumentos
parent
El nodo hierarchyid para el que se debe realizar la prueba IsDescendantOf.
Tipos de valor devuelto
Tipo de valor devuelto de SQL Server:bit
Tipo de valor devuelto de CLR:SqlBoolean
Observaciones
Devuelve true para todos los nodos del subárbol con la raíz en el elemento primario y false para todos los demás nodos.
El elemento primario se considera su propio descendiente.
Ejemplos
A. Usar IsDescendantOf en una cláusula WHERE
El ejemplo siguiente devuelve un administrador y los empleados que dependen de él:
DECLARE @Manager hierarchyid
SELECT @Manager = OrgNode FROM HumanResources.EmployeeDemo
WHERE LoginID = 'adventure-works\dylan0'
SELECT * FROM HumanResources.EmployeeDemo
WHERE OrgNode.IsDescendantOf(@Manager) = 1
B. Usar IsDescendantOf para evaluar una relación
En el código siguiente se declaran y rellenan tres variables. A continuación se evalúa la relación jerárquica y se devuelve uno de dos resultados impresos según la comparación:
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. Llamada de un método del Common Language Runtime
En el fragmento de código siguiente se llama al método IsDescendantOf()
.
this.IsDescendantOf(Parent)
Consulte también
Referencia de los métodos del tipo de datos hierarchyid
Datos jerárquicos (SQL Server)
hierarchyid (Transact-SQL)