UFN_LEVELHIERARCHY_GETNEWDESCENDANTVALUE
Return
Return Type |
---|
hierarchyid |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@NFGCAMPAIGNID | uniqueidentifier | IN | |
@PARENTID | uniqueidentifier | IN |
Definition
Copy
create function dbo.UFN_LEVELHIERARCHY_GETNEWDESCENDANTVALUE
(
@NFGCAMPAIGNID uniqueidentifier,
@PARENTID uniqueidentifier = null
)
returns
hierarchyid
as
begin
declare @PARENTHIERARCHYID hierarchyid;
declare @RootID hierarchyid;
if exists(select 1 from FAFNFGCAMPAIGNLEVEL where NFGCAMPAIGNID = @NFGCAMPAIGNID)
select @RootID= min(HierarchyPath) from FAFNFGCAMPAIGNLEVEL where NFGCAMPAIGNID = @NFGCAMPAIGNID
else
set @RootID= hierarchyid::GetRoot();
if @PARENTID is null
set @PARENTHIERARCHYID = @RootID;
else begin
select
@PARENTHIERARCHYID = FAFNFGCAMPAIGNLEVEL.HIERARCHYPATH
from
dbo.FAFNFGCAMPAIGNLEVEL
where
FAFNFGCAMPAIGNLEVEL.ID = @PARENTID;
end
declare @LASTCHILDHIERARCHYID hierarchyid;
select
@LASTCHILDHIERARCHYID = max(FAFNFGCAMPAIGNLEVEL.HIERARCHYPATH)
from
dbo.FAFNFGCAMPAIGNLEVEL
where
FAFNFGCAMPAIGNLEVEL.HIERARCHYPATH.GetAncestor(1) = @PARENTHIERARCHYID
return @PARENTHIERARCHYID.GetDescendant(@LASTCHILDHIERARCHYID, null);
end