USP_OLAP_ETL_UPDATE_OLAPDATASOURCEATTRIBUTECATEGORY

Parameters

Parameter Parameter Type Mode Description
@OLAPDATASOURCEID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.[USP_OLAP_ETL_UPDATE_OLAPDATASOURCEATTRIBUTECATEGORY](@OLAPDATASOURCEID uniqueidentifier)
as
begin

  declare @CHANGEAGENTID uniqueidentifier
  exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output

  --insert into control table all attributes categories that are needed for list builders

  insert into dbo.[OLAPDATASOURCEATTRIBUTECATEGORY]
  (
    [ID], 
    [OLAPDATASOURCEID], 
    [ATTRIBUTECATEGORYID], 
    [ADDEDBYID], 
    [DATEADDED], 
    [CHANGEDBYID], 
    [DATECHANGED], 
    [ISLISTBUILDERATTRIBUTE]
  )
  select
    newid() as [ID],
    @OLAPDATASOURCEID as [OLAPDATASOURCEID],
    ac.[ID] as [ATTRIBUTECATEGORYID],
    @CHANGEAGENTID as [ADDEDBYID],
    getdate() as [DATEADDED],
    @CHANGEAGENTID as [CHANGEDBYID],
    getdate() as [DATECHANGED],
    1 as [ISLISTBUILDERATTRIBUTE]
  from dbo.[ATTRIBUTECATEGORY] ac
  left join dbo.[OLAPDATASOURCEATTRIBUTECATEGORY] oac on ac.[ID] = oac.[ATTRIBUTECATEGORYID]
  where ac.[ISLISTBUILDERATTRIBUTE] = 1 and oac.[ID] is null;

  --Update then control table for all attributes categories that are no longer needed for list builders

    update oac
    set
        [ISLISTBUILDERATTRIBUTE] = 0
    from dbo.[OLAPDATASOURCEATTRIBUTECATEGORY] oac
    inner join dbo.[ATTRIBUTECATEGORY] ac on ac.[ID] = oac.[ATTRIBUTECATEGORYID]
    where oac.[ISLISTBUILDERATTRIBUTE] = 1 and ac.[ISLISTBUILDERATTRIBUTE] = 0;

    --Create all the needed audit tables to track deletes

    exec dbo.[USP_OLAPATTRIBUTECATEGORYSELECTION_CREATEETLDELETEDID];

end