USP_MKTSEGMENT_DELETEVIEW

Delete a segment's view.

Parameters

Parameter Parameter Type Mode Description
@SEGMENTID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.[USP_MKTSEGMENT_DELETEVIEW]
(
  @SEGMENTID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier
)
with execute as owner
as
  set nocount on;

  declare @NAME nvarchar(255);
  declare @IDSETREGISTERID uniqueidentifier;

  select
    @NAME = dbo.[UFN_MKTSEGMENT_MAKEVIEWNAME]([ID]),
    @IDSETREGISTERID = [IDSETREGISTERID]
  from dbo.[MKTSEGMENT]
  where [ID] = @SEGMENTID;

  update dbo.[MKTSEGMENT] set
    [IDSETREGISTERID] = null,
    [CHANGEDBYID] = @CHANGEAGENTID,
    [DATECHANGED] = getdate()
  where [ID] = @SEGMENTID;

  -- Check to see if the selection is being used in a merged selection

  if not exists (select ID from dbo.IDSETREGISTERMERGE where IDSETREGISTERID = @IDSETREGISTERID or SELECTION1ID = @IDSETREGISTERID or SELECTION2ID = @IDSETREGISTERID)
  begin
      --Remove the VIEW from the IDSETREGISTER

      exec dbo.[USP_IDSETREGISTER_DELETEBYID_WITHCHANGEAGENTID] @IDSETREGISTERID, @CHANGEAGENTID;

      --Drop the segment view...

      if exists(select 1 from [INFORMATION_SCHEMA].[VIEWS] where [TABLE_SCHEMA] = 'dbo' and [TABLE_NAME] = @NAME)
        exec ('drop view dbo.[' + @NAME + ']');
  end

  return 0;