USP_DIRECTMARKETINGEFFORTBATCHROW_DELETE
Executes the "Direct Marketing Effort Batch Row: Delete" record operation.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | Input parameter indicating the ID of the record being deleted. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the delete. |
Definition
Copy
CREATE procedure dbo.[USP_DIRECTMARKETINGEFFORTBATCHROW_DELETE]
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier
)
as
set nocount on;
declare @BATCHID uniqueidentifier;
declare @BATCHSEGMENTID uniqueidentifier;
declare @BATCHPACKAGEID uniqueidentifier;
declare @BATCHLISTID uniqueidentifier;
declare @BATCHTESTSEGMENTID uniqueidentifier;
select
@BATCHID = [BATCHID],
@BATCHSEGMENTID = [BATCHDIRECTMARKETINGEFFORTSEGMENTID],
@BATCHPACKAGEID = [BATCHDIRECTMARKETINGEFFORTPACKAGEID],
@BATCHLISTID = [BATCHDIRECTMARKETINGEFFORTLISTID],
@BATCHTESTSEGMENTID = [BATCHDIRECTMARKETINGEFFORTTESTSEGMENTID]
from dbo.[BATCHDIRECTMARKETINGEFFORT]
where [ID] = @ID;
--Delete the batch row first to avoid foreign key violations from the child tables...
exec dbo.[USP_BATCHDIRECTMARKETINGEFFORT_DELETEBYID_WITHCHANGEAGENTID] @ID, @CHANGEAGENTID;
--Now delete the rows in the child tables, but only if they are not being used by another row in the batch...
if @BATCHSEGMENTID is not null and not exists(select * from dbo.[BATCHDIRECTMARKETINGEFFORT] where [BATCHID] = @BATCHID and [BATCHDIRECTMARKETINGEFFORTSEGMENTID] = @BATCHSEGMENTID and [ID] <> @ID)
exec dbo.[USP_BATCHDIRECTMARKETINGEFFORTSEGMENT_DELETEBYID_WITHCHANGEAGENTID] @BATCHSEGMENTID, @CHANGEAGENTID;
if @BATCHPACKAGEID is not null and not exists(select * from dbo.[BATCHDIRECTMARKETINGEFFORT] where [BATCHID] = @BATCHID and [BATCHDIRECTMARKETINGEFFORTPACKAGEID] = @BATCHPACKAGEID and [ID] <> @ID)
exec dbo.[USP_BATCHDIRECTMARKETINGEFFORTPACKAGE_DELETEBYID_WITHCHANGEAGENTID] @BATCHPACKAGEID, @CHANGEAGENTID;
if @BATCHLISTID is not null and not exists(select * from dbo.[BATCHDIRECTMARKETINGEFFORT] where [BATCHID] = @BATCHID and [BATCHDIRECTMARKETINGEFFORTLISTID] = @BATCHLISTID and [ID] <> @ID)
exec dbo.[USP_BATCHDIRECTMARKETINGEFFORTLIST_DELETEBYID_WITHCHANGEAGENTID] @BATCHLISTID, @CHANGEAGENTID;
if @BATCHTESTSEGMENTID is not null and not exists(select * from dbo.[BATCHDIRECTMARKETINGEFFORT] where [BATCHID] = @BATCHID and [BATCHDIRECTMARKETINGEFFORTTESTSEGMENTID] = @BATCHTESTSEGMENTID and [ID] <> @ID)
exec dbo.[USP_BATCHDIRECTMARKETINGEFFORTTESTSEGMENT_DELETEBYID_WITHCHANGEAGENTID] @BATCHTESTSEGMENTID, @CHANGEAGENTID;
return 0;