IsDescendantOf (veritabanı altyapısı)
Döndürür doğru Eğer thisüst soyundan olan.
Sözdizimi
-- Transact-SQL syntax
child. IsDescendantOf ( parent )
-- CLR syntax
SqlHierarchyId IsDescendantOf (SqlHierarchyId parent )
Bağımsız değişkenler
- parent
hierarchyidDüğümü için hangi IsDescendantOfsınama gerçekleştirilmesi.
Dönüş Türleri
SQL Server döndürme türü: bit
clr döndürme türü: SqlBoolean
Açıklamalar
Alt ağacı tüm düğümler için true döner, diğer tüm düğümleri için üst ve yanlış köklü.
Üst kendi soyundan kabul edilir.
Örnekler
A.where yan tümcesinde IsDescendantOf kullanma
Aşağıdaki örnek yönetici ve çalışanları, rapor Yöneticisi verir:
DECLARE @Manager hierarchyid
SELECT @Manager = OrgNode FROM HumanResources.EmployeeDemo
WHERE LoginID = 'adventure-works\dylan0'
SELECT * FROM HumanResources.EmployeeDemo
WHERE OrgNode.IsDescendantOf(@Manager) = 1
DECLARE @Manager hierarchyid
SELECT @Manager = OrgNode FROM HumanResources.EmployeeDemo
WHERE LoginID = 'adventure-works\dylan0'
SELECT * FROM HumanResources.EmployeeDemo
WHERE OrgNode.IsDescendantOf(@Manager) = 1
B.Bir ilişki değerlendirmek için IsDescendantOf kullanma
Aşağıdaki kod bildirir ve üç değişken doldurur. Ardından hiyerarşik ilişkileri değerlendirir ve karşılaştırma dayalı iki yazdırma sonuçları döndürür:
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
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.Bir ortak dil çalışma zamanı yöntemi çağırma
Aşağıdaki kod parçacığını aramalar IsDescendantOf()yöntemi.
this.IsDescendantOf(Parent)
this.IsDescendantOf(Parent)