USP_MKTSEGMENTATION_SOURCEANALYSISRULEDATAEXISTS

Determines whether or not source analysis rule data has been cached for a mailing.

Parameters

Parameter Parameter Type Mode Description
@SEGMENTATIONID uniqueidentifier IN
@SOURCEANALYSISRULEDATAEXISTS bit INOUT

Definition

Copy


create procedure dbo.[USP_MKTSEGMENTATION_SOURCEANALYSISRULEDATAEXISTS]
(
  @SEGMENTATIONID uniqueidentifier,
  @SOURCEANALYSISRULEDATAEXISTS bit output
)
as
  set nocount on;

  declare @RECORDSOURCEID uniqueidentifier;
  declare @SOURCEANALYSISRULEDATATABLE nvarchar(128);
  declare @SQL nvarchar(max);
  declare @COUNT integer;

  set @SOURCEANALYSISRULEDATAEXISTS = 0;

  declare RECORDSOURCECURSOR cursor local fast_forward for
    select
      [QUERYVIEWCATALOG].[ID]
    from dbo.[UFN_MKTSEGMENTATION_GETDISTINCTRECORDSOURCES](@SEGMENTATIONID) as [DRS]
    inner join dbo.[QUERYVIEWCATALOG] on [QUERYVIEWCATALOG].[ID] = [DRS].[QUERYVIEWCATALOGID];

  open RECORDSOURCECURSOR;
  fetch next from RECORDSOURCECURSOR into @RECORDSOURCEID;

  while (@@FETCH_STATUS = 0) and @SOURCEANALYSISRULEDATAEXISTS = 0
    begin
      set @SOURCEANALYSISRULEDATATABLE = dbo.[UFN_MKTSOURCEANALYSISRULE_MAKETABLENAME](@RECORDSOURCEID);

      set @SQL = 'select @COUNT = count([DONORID]) from dbo.[' + @SOURCEANALYSISRULEDATATABLE + '] where [MAILINGID] = @SEGMENTATIONID;';

      exec sp_executesql @SQL, N'@COUNT integer output, @SEGMENTATIONID uniqueidentifier', @COUNT = @COUNT output, @SEGMENTATIONID = @SEGMENTATIONID;

      if @COUNT > 0 set @SOURCEANALYSISRULEDATAEXISTS = 1;

      fetch next from RECORDSOURCECURSOR into @RECORDSOURCEID;
    end

  close RECORDSOURCECURSOR;
  deallocate RECORDSOURCECURSOR;

  return 0;