TR_TEAMEXTENSION_INSERT_FAFGROUPDIRECTHIERARCHY
Definition
Copy
CREATE trigger TR_TEAMEXTENSION_INSERT_FAFGROUPDIRECTHIERARCHY on dbo.TEAMEXTENSION after insert not for replication
as begin
declare @CHANGEAGENTID uniqueidentifier,
@CURRENTDATE datetime
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
set @CURRENTDATE = GETDATE()
;With CTE_PARENT(TEAMID, PARENTTEAMID)
AS
(
select T.ID, T.PARENTTEAMID
from inserted I
join dbo.TEAMFUNDRAISINGTEAM T on I.TEAMFUNDRAISINGTEAMID = T.ID
union all
select C.TEAMID, TFT.PARENTTEAMID
from dbo.TEAMFUNDRAISINGTEAM TFT
join CTE_PARENT C ON TFT.ID = C.PARENTTEAMID
)
,CTE_CHILDREN(TEAMID, PARENTTEAMID)
as
(
select T.ID, T.PARENTTEAMID
from inserted I
join dbo.TEAMFUNDRAISINGTEAM T on I.TEAMFUNDRAISINGTEAMID = T.ID
union all
select TFT.ID, C.PARENTTEAMID
from dbo.TEAMFUNDRAISINGTEAM TFT
join CTE_CHILDREN C ON TFT.PARENTTEAMID = C.TEAMID
),
CTE_ALL(TEAMID, PARENTTEAMID)
AS
(
select TEAMID, PARENTTEAMID from CTE_PARENT
union all
select TEAMID, PARENTTEAMID from CTE_CHILDREN
)
insert into dbo.FAFGROUPDIRECTHIERARCHY(ID, EVENTID, GROUPID, GROUPCONSTITUENTID, CHILDGROUPID, CHILDGROUPCONSTITUENTID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
select newID(), A.*,@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE from (
select distinct cTX.EVENTID, C.PARENTTEAMID as GROUPID , pTX.TEAMCONSTITUENTID as GROUPCONSTITUENTID, C.TEAMID as CHILDGROUPID, cTX.TEAMCONSTITUENTID as CHILDGROUPCONSTITUENTID
from CTE_ALL c
left join dbo.TEAMEXTENSION cTX (nolock) on cTX.TEAMFUNDRAISINGTEAMID = C.TEAMID
left join dbo.TEAMEXTENSION pTX (nolock) on pTX.TEAMFUNDRAISINGTEAMID = C.PARENTTEAMID
where C.PARENTTEAMID is not null
) A
-- insert self record.
insert into dbo.FAFGROUPDIRECTHIERARCHY(ID, EVENTID, GROUPID, GROUPCONSTITUENTID, CHILDGROUPID, CHILDGROUPCONSTITUENTID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
select newID(), I.EVENTID, I.TEAMFUNDRAISINGTEAMID, I.TEAMCONSTITUENTID, I.TEAMFUNDRAISINGTEAMID, I.TEAMCONSTITUENTID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from inserted I
end