USP_MKTSEGMENTATIONEXCLUSION_DELETEFROMSARDATA

Remove people from the SAR data table.

Parameters

Parameter Parameter Type Mode Description
@SEGMENTATIONEXCLUSIONID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.[USP_MKTSEGMENTATIONEXCLUSION_DELETEFROMSARDATA]
(
  @SEGMENTATIONEXCLUSIONID uniqueidentifier
)
as
  set nocount on;

  declare @SEGMENTATIONID uniqueidentifier;
  declare @RECORDSOURCEID uniqueidentifier;
  declare @SARTABLE nvarchar(128);
  declare @EXCLUSIONTABLE nvarchar(128);
  declare @SQL nvarchar(max);

  select
    @SEGMENTATIONID = [SEGMENTATIONID]
  from dbo.[MKTSEGMENTATIONEXCLUSION]
  where [MKTSEGMENTATIONEXCLUSION].[ID] = @SEGMENTATIONEXCLUSIONID;


  declare SARCURSOR cursor local fast_forward for
    select [QUERYVIEWCATALOGID]
    from dbo.[UFN_MKTSEGMENTATION_GETDISTINCTRECORDSOURCES](@SEGMENTATIONID);

  open SARCURSOR;
  fetch next from SARCURSOR into @RECORDSOURCEID;

  while(@@FETCH_STATUS = 0)
  begin
    set @SARTABLE = dbo.[UFN_MKTSOURCEANALYSISRULE_MAKETABLENAME](@RECORDSOURCEID);
    set @EXCLUSIONTABLE = dbo.[UFN_MKTSOURCEANALYSISRULEEXCLUSION_MAKETABLENAME](@RECORDSOURCEID);

    set @SQL = 'delete from dbo.[' + @SARTABLE + ']' + char(13) +
               'from dbo.[' + @SARTABLE + '] as [SAR]' + char(13) +
               'inner join dbo.[' + @EXCLUSIONTABLE + '] as [EXCL] on [SAR].[FINDERNUMBER] = [EXCL].[FINDERNUMBER]' + char(13) +
               'where [EXCL].[SEGMENTATIONEXCLUSIONID] = @SEGMENTATIONEXCLUSIONID';
    exec sp_executesql @SQL, N'@SEGMENTATIONEXCLUSIONID uniqueidentifier', @SEGMENTATIONEXCLUSIONID = @SEGMENTATIONEXCLUSIONID;

    fetch next from SARCURSOR into @RECORDSOURCEID;
  end

  close SARCURSOR;
  deallocate SARCURSOR;

  return 0;