USP_MKTSEGMENTATION_SWAPSEGMENTS
Swaps the sequence of two segments.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@TOPSEGMENTID | uniqueidentifier | IN | |
@BOTTOMSEGMENTID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_MKTSEGMENTATION_SWAPSEGMENTS
(
@TOPSEGMENTID uniqueidentifier,
@BOTTOMSEGMENTID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null
)
as
set nocount on;
declare @CURRENTDATE datetime;
if @CHANGEAGENTID is null
exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;
set @CURRENTDATE = getdate();
/* Swap the sequences */
update dbo.[MKTSEGMENTATIONSEGMENT]
set [SEQUENCE] = [SEQUENCE] + 1, [CHANGEDBYID] = @CHANGEAGENTID, [DATECHANGED] = @CURRENTDATE
where [ID] = @TOPSEGMENTID;
update dbo.[MKTSEGMENTATIONSEGMENT]
set [SEQUENCE] = [SEQUENCE] - 1, [CHANGEDBYID] = @CHANGEAGENTID, [DATECHANGED] = @CURRENTDATE
where [ID] = @BOTTOMSEGMENTID;
/* Clear the cache for the segments and all segments after them with the same record type. */
/* Not valid for vendor managed segments, so skip. */
if exists(select 1 from dbo.[MKTSEGMENTATIONSEGMENT] where [ID] = @TOPSEGMENTID and dbo.[UFN_MKTSEGMENT_ISVENDORMANAGEDLIST]([SEGMENTID]) = 0)
exec dbo.[USP_MKTSEGMENTATIONSEGMENT_CLEARCACHE] @TOPSEGMENTID, 1, 1;
if exists(select 1 from dbo.[MKTSEGMENTATIONSEGMENT] where [ID] = @BOTTOMSEGMENTID and dbo.[UFN_MKTSEGMENT_ISVENDORMANAGEDLIST]([SEGMENTID]) = 0)
exec dbo.[USP_MKTSEGMENTATIONSEGMENT_CLEARCACHE] @BOTTOMSEGMENTID, 1, 1;
return 0;