TR_PDCOMPOSITESEGMENTTABLELIST_INS
Definition
Copy
create trigger [dbo].[TR_PDCOMPOSITESEGMENTTABLELIST_INS] on [dbo].[PDCOMPOSITESEGMENTTABLELIST]
for insert, update
as
set nocount on
if exists(select * from inserted)
begin
-- Need to see if this has a custom composite segment, if it does then this is considered a custom composite segment.
-- First those WITHOUT a custom segment
update dbo.PDACCOUNTTABLESAVAILABLEFORSEGMENT
set SEGMENTTYPECODE = 1
from dbo.PDACCOUNTTABLESAVAILABLEFORSEGMENT
inner join inserted
on PDACCOUNTTABLESAVAILABLEFORSEGMENT.ID = inserted.PDCOMPOSITESEGMENTID
where (not exists (select 1
from inserted as inserted_inner
inner join dbo.PDACCOUNTTABLESAVAILABLEFORSEGMENT as PDACCOUNTTABLESAVAILABLEFORSEGMENT_INNER
on PDACCOUNTTABLESAVAILABLEFORSEGMENT_INNER.ID = inserted.PDACCOUNTTABLESAVAILABLEFORSEGMENTID
where (inserted_inner.ID = inserted.ID) and
(PDACCOUNTTABLESAVAILABLEFORSEGMENT_INNER.SEGMENTTYPECODE = 2)));
-- Next those WITH a custom segment
update dbo.PDACCOUNTTABLESAVAILABLEFORSEGMENT
set SEGMENTTYPECODE = 2
from dbo.PDACCOUNTTABLESAVAILABLEFORSEGMENT
inner join inserted
on PDACCOUNTTABLESAVAILABLEFORSEGMENT.ID = inserted.PDCOMPOSITESEGMENTID
where (exists (select 1
from inserted as inserted_inner
inner join dbo.PDACCOUNTTABLESAVAILABLEFORSEGMENT as PDACCOUNTTABLESAVAILABLEFORSEGMENT_INNER
on PDACCOUNTTABLESAVAILABLEFORSEGMENT_INNER.ID = inserted.PDACCOUNTTABLESAVAILABLEFORSEGMENTID
where (inserted_inner.ID = inserted.ID) and
(PDACCOUNTTABLESAVAILABLEFORSEGMENT_INNER.SEGMENTTYPECODE = 2)));
end