USP_MKTSEGMENTATIONSEGMENT_CACHERECORDCOUNT
Caches the record count for a marketing effort segment.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SEGMENTID | uniqueidentifier | IN | |
@RECORDCOUNT | int | IN |
Definition
Copy
CREATE procedure dbo.[USP_MKTSEGMENTATIONSEGMENT_CACHERECORDCOUNT]
(
@SEGMENTID uniqueidentifier,
@RECORDCOUNT int
)
as
set nocount on;
declare @SEGMENTTYPECODE tinyint;
declare @ISVENDORMANAGED bit;
declare @SEGMENTATIONID uniqueidentifier;
declare @SQL nvarchar(max);
declare @OFFERCOUNT int;
begin try
select
@SEGMENTTYPECODE = [MKTSEGMENT].[SEGMENTTYPECODE],
@ISVENDORMANAGED = (case when [MKTSEGMENTLIST].[TYPECODE] = 1 then 1 else 0 end),
@SEGMENTATIONID = [MKTSEGMENTATIONSEGMENT].[SEGMENTATIONID]
from dbo.[MKTSEGMENTATIONSEGMENT]
inner join dbo.[MKTSEGMENT] on [MKTSEGMENT].[ID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTID]
left join dbo.[MKTSEGMENTLIST] on [MKTSEGMENTLIST].[ID] = [MKTSEGMENT].[CURRENTSEGMENTLISTID]
where [MKTSEGMENTATIONSEGMENT].[ID] = @SEGMENTID;
if @SEGMENTTYPECODE = 3 or (@SEGMENTTYPECODE = 2 and @ISVENDORMANAGED = 1)
--Revenue or vendor managed list segments - offer count will always be 100% of record count...
set @OFFERCOUNT = @RECORDCOUNT;
else
begin
set @SQL = 'select @OFFERCOUNT = count(*) from dbo.[' + dbo.[UFN_MKTSEGMENTATIONACTIVATE_MAKETABLENAME](@SEGMENTATIONID) + '] where [SEGMENTID] = @SEGMENTID';
exec sp_executesql @SQL, N'@OFFERCOUNT int output, @SEGMENTID uniqueidentifier', @OFFERCOUNT = @OFFERCOUNT output, @SEGMENTID = @SEGMENTID;
end
if exists(select top 1 1 from dbo.[MKTSEGMENTATIONSEGMENTCACHEINFO] where [SEGMENTID] = @SEGMENTID)
update dbo.[MKTSEGMENTATIONSEGMENTCACHEINFO] set
[RECORDCOUNT] = @RECORDCOUNT,
[OFFERCOUNT] = @OFFERCOUNT,
[RECORDCOUNTDATECACHED] = getdate()
where [SEGMENTID] = @SEGMENTID;
else
insert into dbo.[MKTSEGMENTATIONSEGMENTCACHEINFO] (
[SEGMENTID],
[RECORDCOUNT],
[OFFERCOUNT],
[RECORDCOUNTDATECACHED]
) values (
@SEGMENTID,
@RECORDCOUNT,
@OFFERCOUNT,
getdate()
);
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;