USP_MKTSEGMENTATIONACTIVATE_ACTIVATE

Marks the marketing effort as active and sets the date it was activated. If it is already activated, then it does nothing.

Parameters

Parameter Parameter Type Mode Description
@SEGMENTATIONID uniqueidentifier IN
@ISEXCLUSION bit IN

Definition

Copy


CREATE procedure dbo.[USP_MKTSEGMENTATIONACTIVATE_ACTIVATE]
(
  @SEGMENTATIONID uniqueidentifier,
  @ISEXCLUSION bit = 0
)
as
  set nocount on;

  declare @SQL as nvarchar(max);
  declare @DATATABLE nvarchar(128);
  declare @MAILINGTYPECODE tinyint;
  declare @INDEXNAME nvarchar(128);
  declare @USECOMPRESSION bit = (case when serverproperty('engineedition') = 3 then 1 else 0 end);

  begin try
    select
      @DATATABLE = case 
        when @ISEXCLUSION = 1 then dbo.[UFN_MKTSEGMENTATIONACTIVATEEXCLUSION_MAKETABLENAME]([ID]) 
        else dbo.[UFN_MKTSEGMENTATIONACTIVATE_MAKETABLENAME]([ID]) end,
      @MAILINGTYPECODE = [MAILINGTYPECODE]
    from dbo.[MKTSEGMENTATION]
    where [ID] = @SEGMENTATIONID;


    /* Rebuild the clustered index first on DonorQueryViewCatalogID and DonorID to clean up the fragmentation from activating */
    if @MAILINGTYPECODE in (1, 5)
      set @INDEXNAME = 'IX_' + @DATATABLE + '_DONORQUERYVIEWCATALOGID_REVENUEID_DONORID';
    else if @MAILINGTYPECODE = 2
      set @INDEXNAME = 'IX_' + @DATATABLE + '_DONORQUERYVIEWCATALOGID_MEMBERSHIPID_DONORID';
    else if @MAILINGTYPECODE = 3
      set @INDEXNAME = 'IX_' + @DATATABLE + '_DONORQUERYVIEWCATALOGID_SPONSORSHIPID_DONORID';
    else
      set @INDEXNAME = 'IX_' + @DATATABLE + '_DONORQUERYVIEWCATALOGID_DONORID';
    exec dbo.[USP_MKTCOMMON_REBUILDINDEX] @DATATABLE, @INDEXNAME, 100, 1;


    --We want the index fillfactor to be 100% to save space since we are now done working with this table.


    /* Create an index on the SegmentID */
    set @SQL = 'create nonclustered index [IX_' + @DATATABLE + '_SEGMENTID] on [dbo].[' + @DATATABLE + '] ([SEGMENTID] asc) with (PAD_INDEX  = off, SORT_IN_TEMPDB = on, DROP_EXISTING = off, IGNORE_DUP_KEY = off, ONLINE = off, FILLFACTOR = 100' + (case when @USECOMPRESSION = 1 then ', DATA_COMPRESSION = PAGE' else '' end) + ') on [IDXGROUP]';
    exec (@SQL);

    /* Create an index on the TestSegmentID */
    set @SQL = 'create nonclustered index [IX_' + @DATATABLE + '_TESTSEGMENTID] on [dbo].[' + @DATATABLE + '] ([TESTSEGMENTID] asc) with (PAD_INDEX  = off, SORT_IN_TEMPDB = on, DROP_EXISTING = off, IGNORE_DUP_KEY = off, ONLINE = off, FILLFACTOR = 100' + (case when @USECOMPRESSION = 1 then ', DATA_COMPRESSION = PAGE' else '' end) + ') on [IDXGROUP]';
    exec (@SQL);

    /* Create an index on the SourceCode */
    set @SQL = 'create nonclustered index [IX_' + @DATATABLE + '_SOURCECODE] on [dbo].[' + @DATATABLE + '] ([SOURCECODE] asc) with (PAD_INDEX  = off, SORT_IN_TEMPDB = on, DROP_EXISTING = off, IGNORE_DUP_KEY = off, ONLINE = off, FILLFACTOR = 100' + (case when @USECOMPRESSION = 1 then ', DATA_COMPRESSION = PAGE' else '' end) + ') on [IDXGROUP]';
    exec (@SQL);

    /* Create an index on the AskLadderID */
    set @SQL = 'create nonclustered index [IX_' + @DATATABLE + '_ASKLADDERID] on [dbo].[' + @DATATABLE + '] ([ASKLADDERID] asc) with (PAD_INDEX  = off, SORT_IN_TEMPDB = on, DROP_EXISTING = off, IGNORE_DUP_KEY = off, ONLINE = off, FILLFACTOR = 100' + (case when @USECOMPRESSION = 1 then ', DATA_COMPRESSION = PAGE' else '' end) + ') on [IDXGROUP]';
    exec (@SQL);

     /* Create an index on the TESTSEGMENTID and DONORID */
    set @SQL = 'create nonclustered index [IX_' + @DATATABLE + '_TESTSEGMENTID_DONORID] on [dbo].[' + @DATATABLE + '] ([TESTSEGMENTID], [DONORID]) include([SEGMENTID]) with (PAD_INDEX  = off, SORT_IN_TEMPDB = on, DROP_EXISTING = off, IGNORE_DUP_KEY = off, ONLINE = off, FILLFACTOR = 100' + (case when @USECOMPRESSION = 1 then ', DATA_COMPRESSION = PAGE' else '' end) + ') on [IDXGROUP]';
    exec (@SQL);

    /* Create an index on the ConstituentAppealID, only for BBEC */
    if dbo.[UFN_INSTALLEDPRODUCTS_PRODUCTIS]('BB9873D7-F1ED-430A-8AB4-F09F47056538') = 0
      begin
        set @SQL = 'create nonclustered index [IX_' + @DATATABLE + '_CONSTITUENTAPPEALID] on [dbo].[' + @DATATABLE + '] ([CONSTITUENTAPPEALID] asc) with (PAD_INDEX  = off, SORT_IN_TEMPDB = on, DROP_EXISTING = off, IGNORE_DUP_KEY = off, ONLINE = off, FILLFACTOR = 100' + (case when @USECOMPRESSION = 1 then ', DATA_COMPRESSION = PAGE' else '' end) + ') on [IDXGROUP]';
        exec (@SQL);
      end
  end try

  begin catch
    exec dbo.[USP_RAISE_ERROR];
    return 1;
  end catch

  return 0;