USP_PDCOMPOSITESEGMENTMAPPINGVIEW_RECREATE
Alters PDCOMPOSITESEGMENTMAPPINGVIEW when account segments are added or deleted
Definition
Copy
CREATE procedure dbo.USP_PDCOMPOSITESEGMENTMAPPINGVIEW_RECREATE
as
BEGIN
declare @string varchar(max)
declare @string2 varchar(max)
select @string = substring((select ' UNION ' + 'SELECT '+DESCRIPTIONCOLUMNNAME+' AS LONGDESCRIPTION, ID as LONGDESCRIPTIONID, convert(uniqueidentifier,'''+ convert(char(36),PDACCOUNTTABLESAVAILABLEFORSEGMENTID )+ ''') as PDACCOUNTTABLESAVAILABLEFORSEGMENTID FROM '+TableName + case v1.TABLENAME when 'EVENT' then ' where programid is null' else '' end
from (select distinct DESCRIPTIONCOLUMNNAME, TABLENAME, PDACCOUNTTABLESAVAILABLEFORSEGMENTID
from PDCompositeSegmentTableList t1 INNER JOIN PDAccountTablesAvailableForSegment t2 on t1.PDAccountTablesAvailableForSegmentID = t2.ID
where t2.ISCODETABLE = 1 or t2.ISCODETABLE = 2) V1
for XML path('')),8,8000)
set @string2 = ' UNION select ''<Not Used>'' as LONGDESCRIPTION, ''99999999-9999-9999-9999-999999999999'' as LONGDESCRIPTIONID, PDACCOUNTTABLESAVAILABLEFORSEGMENTID as PDACCOUNTTABLESAVAILABLEFORSEGMENTID from PDCOMPOSITESEGMENTTABLELIST where SEQUENCE = 1'
set @string2 = @string2 + 'UNION select ''<Not Used>'' as LONGDESCRIPTION,''99999999-9999-9999-9999-999999999999'' as LONGDESCRIPTIONID, PDACCOUNTTABLESAVAILABLEFORSEGMENTID as PDACCOUNTTABLESAVAILABLEFORSEGMENTID from PDCOMPOSITESEGMENTTABLELIST where SEQUENCE = 2'
set @string2 = @string2 + 'UNION select ''<Not Used>'' as LONGDESCRIPTION,''99999999-9999-9999-9999-999999999999'' as LONGDESCRIPTIONID, PDACCOUNTTABLESAVAILABLEFORSEGMENTID as PDACCOUNTTABLESAVAILABLEFORSEGMENTID from PDCOMPOSITESEGMENTTABLELIST where SEQUENCE = 3'
set @string2 = @string2 + 'UNION select ''<Not Used>'' as LONGDESCRIPTION, ''99999999-9999-9999-9999-999999999999'' as LONGDESCRIPTIONID, PDACCOUNTTABLESAVAILABLEFORSEGMENTID as PDACCOUNTTABLESAVAILABLEFORSEGMENTID from PDCOMPOSITESEGMENTTABLELIST where SEQUENCE = 4'
if not @string is null
exec( 'ALTER VIEW dbo.PDCOMPOSITESEGMENTMAPPINGVIEW as '+@string+@string2 )
else
exec( 'ALTER VIEW dbo.PDCOMPOSITESEGMENTMAPPINGVIEW as select '''' as LONGDESCRIPTION, ID as LONGDESCRIPTIONID, newid() as PDACCOUNTTABLESAVAILABLEFORSEGMENTID from dbo.EVENT where ID = ''00000000-0000-0000-0000-000000000000''' )
end