UFN_EVENT_GETHIERARCHYPATHINSERTPOSITION
This function returns the next available descendant hierarchyid for an event.
Return
Return Type |
---|
hierarchyid |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@PARENTID | uniqueidentifier | IN |
Definition
Copy
create function dbo.UFN_EVENT_GETHIERARCHYPATHINSERTPOSITION (
@PARENTID uniqueidentifier = null
) returns hierarchyid
as begin
declare @PARENTHIERARCHYID hierarchyid;
if @PARENTID is null
set @PARENTHIERARCHYID = hierarchyid::GetRoot();
else begin
select
@PARENTHIERARCHYID = [EVENTHIERARCHY].[HIERARCHYPATH]
from
dbo.[EVENTHIERARCHY]
where
[EVENTHIERARCHY].ID = @PARENTID;
end
declare @LASTCHILDHIERARCHYID hierarchyid;
select
@LASTCHILDHIERARCHYID = max([EVENTHIERARCHY].[HIERARCHYPATH])
from
dbo.[EVENTHIERARCHY]
where
[EVENTHIERARCHY].[HIERARCHYPATH].GetAncestor(1) = @PARENTHIERARCHYID;
declare @INSERTPOSITION hierarchyid;
set @INSERTPOSITION = @PARENTHIERARCHYID.GetDescendant(@LASTCHILDHIERARCHYID, null);
return @INSERTPOSITION;
end