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;