UFN_SPONSORSHIPLOCATION_FULLSTRING
Returns a string representation of the specified sponsorship location including all parents of the location in the hierarchy.
Return
Return Type |
---|
nvarchar(max) |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@DELIMITER | nvarchar(3) | IN | |
@INCLUDETYPES | bit | IN | |
@MAXLEVELS | tinyint | IN |
Definition
Copy
create function dbo.UFN_SPONSORSHIPLOCATION_FULLSTRING(
@ID uniqueidentifier,
@DELIMITER nvarchar(3) = '',
@INCLUDETYPES bit = 1,
@MAXLEVELS tinyint = 0
)
returns nvarchar(max)
with execute as caller
as begin
declare @RESULT nvarchar(max);
declare @HIERARCHYLEVEL tinyint;
with CTE(ID,HIERARCHYPATH,HIERARCHYLEVEL,LEVEL,NODESTRING) as
(
select
SPONSORSHIPLOCATION.ID,
SPONSORSHIPLOCATION.HIERARCHYPATH,
SPONSORSHIPLOCATION.HIERARCHYPATH.GetLevel() HIERARCHYLEVEL,
1 LEVEL,
cast(SPONSORSHIPLOCATION.NAME + case @INCLUDETYPES when 1 then ' (' + SPONSORSHIPLOCATIONTYPECODE.DESCRIPTION + ')' else '' end as nvarchar(max)) NODESTRING
from
dbo.SPONSORSHIPLOCATION
inner join
dbo.SPONSORSHIPLOCATIONTYPECODE on SPONSORSHIPLOCATIONTYPECODE.ID = SPONSORSHIPLOCATION.SPONSORSHIPLOCATIONTYPECODEID
where
SPONSORSHIPLOCATION.ID = @ID
union all
select
CTE.ID,
SPONSORSHIPLOCATION.HIERARCHYPATH,
SPONSORSHIPLOCATION.HIERARCHYPATH.GetLevel() HIERARCHYLEVEL,
CTE.LEVEL + 1 LEVEL,
cast(SPONSORSHIPLOCATION.NAME + case @INCLUDETYPES when 1 then ' (' + SPONSORSHIPLOCATIONTYPECODE.DESCRIPTION + ')' else '' end + @DELIMITER + CTE.NODESTRING as nvarchar(max)) NODESTRING
from
dbo.SPONSORSHIPLOCATION
inner join
dbo.SPONSORSHIPLOCATIONTYPECODE on SPONSORSHIPLOCATIONTYPECODE.ID = SPONSORSHIPLOCATION.SPONSORSHIPLOCATIONTYPECODEID
inner join
CTE on CTE.HIERARCHYPATH.GetAncestor(1) = SPONSORSHIPLOCATION.HIERARCHYPATH
)
select top 1 @RESULT = NODESTRING, @HIERARCHYLEVEL = HIERARCHYLEVEL
from CTE
where ID = @ID
and (@MAXLEVELS = 0 or LEVEL <= @MAXLEVELS)
order by LEVEL desc
if @HIERARCHYLEVEL > 1
set @RESULT = '... ' + @RESULT
return @RESULT
end