USP_MKTSEGMENTATIONTESTSEGMENT_SWAPTESTSEGMENTS

Swaps the sequence of two test segments.

Parameters

Parameter Parameter Type Mode Description
@TOPTESTSEGMENTID uniqueidentifier IN
@BOTTOMTESTSEGMENTID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.[USP_MKTSEGMENTATIONTESTSEGMENT_SWAPTESTSEGMENTS]
(
  @TOPTESTSEGMENTID uniqueidentifier,
  @BOTTOMTESTSEGMENTID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null
)
as
  set nocount on;

  declare @PARENTSEGMENTID uniqueidentifier;
  declare @CURRENTDATE datetime;

  if @CHANGEAGENTID is null  
    exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;

  set @CURRENTDATE = getdate();

  select
    @PARENTSEGMENTID = [SEGMENTID]
  from dbo.[MKTSEGMENTATIONTESTSEGMENT]
  where [ID] = @TOPTESTSEGMENTID;

  /* Swap the sequences */
  update dbo.[MKTSEGMENTATIONTESTSEGMENT] set
    [SEQUENCE] = [SEQUENCE] + 1,
    [CHANGEDBYID] = @CHANGEAGENTID,
    [DATECHANGED] = @CURRENTDATE
  where [ID] = @TOPTESTSEGMENTID;

  update dbo.[MKTSEGMENTATIONTESTSEGMENT] set
    [SEQUENCE] = [SEQUENCE] - 1,
    [CHANGEDBYID] = @CHANGEAGENTID,
    [DATECHANGED] = @CURRENTDATE
  where [ID] = @BOTTOMTESTSEGMENTID;

  -- clear the cached information for the parent segment to force mailing data recalculation

  exec dbo.[USP_MKTSEGMENTATIONSEGMENT_CLEARCACHE] @PARENTSEGMENTID, 0, 1;

  return 0;