USP_MKTSEGMENTLIST_DELETEIDSETS
Deletes the auto-generated selections that are associated with a list segment.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SEGMENTLISTID | uniqueidentifier | IN | |
@STANDARDIDSETID | uniqueidentifier | IN | |
@DUPLICATEIDSETID | uniqueidentifier | IN | |
@IDSETRECORDTYPEID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
create procedure dbo.[USP_MKTSEGMENTLIST_DELETEIDSETS]
(
@SEGMENTLISTID uniqueidentifier,
@STANDARDIDSETID uniqueidentifier = null,
@DUPLICATEIDSETID uniqueidentifier = null,
@IDSETRECORDTYPEID uniqueidentifier = null,
@CHANGEAGENTID uniqueidentifier = null
)
as
set nocount on;
begin try
if @CHANGEAGENTID is null
exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;
/*****************************************/
/* Delete the standard IDSet and view... */
/*****************************************/
if @STANDARDIDSETID is not null
begin
declare @STANDARDVIEWNAME nvarchar(128);
declare @SEGMENTSELECTIONID uniqueidentifier;
declare @SEGMENTID uniqueidentifier;
select
@SEGMENTID = [SEGMENTID]
from dbo.[MKTSEGMENTLIST]
where [ID] = @SEGMENTLISTID;
select
@STANDARDVIEWNAME = [DBOBJECTNAME]
from dbo.[IDSETREGISTER]
where [ID] = @STANDARDIDSETID;
select
@SEGMENTSELECTIONID = [ID]
from dbo.[MKTSEGMENTSELECTION]
where [SEGMENTID] = @SEGMENTID;
update dbo.[MKTSEGMENT] set
[IDSETREGISTERID] = null,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = getdate()
where [ID] = @SEGMENTID;
exec dbo.[USP_MKTSEGMENTSELECTION_DELETEBYID_WITHCHANGEAGENTID] @SEGMENTSELECTIONID, @CHANGEAGENTID;
if exists(select 1 from INFORMATION_SCHEMA.VIEWS where [TABLE_SCHEMA] = 'dbo' and [TABLE_NAME] = @STANDARDVIEWNAME)
exec ('drop view dbo.[' + @STANDARDVIEWNAME + ']');
exec dbo.[USP_IDSETREGISTER_DELETEBYID_WITHCHANGEAGENTID] @STANDARDIDSETID, @CHANGEAGENTID;
end
/******************************************/
/* Delete the duplicate IDSet and view... */
/******************************************/
if @DUPLICATEIDSETID is not null
begin
declare @DUPLICATEVIEWNAME nvarchar(128);
select
@DUPLICATEVIEWNAME = [DBOBJECTNAME]
from dbo.[IDSETREGISTER]
where [ID] = @DUPLICATEIDSETID;
if exists(select 1 from INFORMATION_SCHEMA.VIEWS where [TABLE_SCHEMA] = 'dbo' and [TABLE_NAME] = @DUPLICATEVIEWNAME)
exec ('drop view dbo.[' + @DUPLICATEVIEWNAME + ']');
exec dbo.[USP_IDSETREGISTER_DELETEBYID_WITHCHANGEAGENTID] @DUPLICATEIDSETID, @CHANGEAGENTID;
end
/**********************************/
/* Delete the IDSet recordtype... */
/**********************************/
if @IDSETRECORDTYPEID is not null
exec dbo.[USP_RECORDTYPE_DELETEBYID_WITHCHANGEAGENTID] @IDSETRECORDTYPEID, @CHANGEAGENTID;
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;