USP_FAFCAMPAIGN_DELETE
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_FAFCAMPAIGN_DELETE
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier
)
as
set nocount on;
begin
declare @INDEX int = 1,
@MAXINDEX int,
@CURRENTID uniqueidentifier = null,
@CURRENTDATE datetime;
declare @CAMPAIGNS table(SEQUENCE int IDENTITY(1, 1), ID uniqueidentifier);
set @CURRENTDATE = getdate();
insert into @CAMPAIGNS
select ID from dbo.FAFNFGCAMPAIGN where CAMPAIGNID = @ID
select @MAXINDEX = MAX(SEQUENCE) from @CAMPAIGNS
BEGIN TRAN
begin try
-- remove FAF NFG from this campaign
while (@MAXINDEX is not null and @INDEX <= @MAXINDEX)
begin
select @CURRENTID = ID from @CAMPAIGNS where SEQUENCE = @INDEX
if @CURRENTID is not null
exec dbo.USP_FAFNFGCAMPAIGN_DELETE @CURRENTID, @CHANGEAGENTID;
set @INDEX = @INDEX + 1
end
-- remove event from this campaign
update dbo.EVENTEXTENSION
set FAFPROGRAMID = NULL, CHANGEDBYID = @CHANGEAGENTID, DATECHANGED = @CURRENTDATE
where FAFPROGRAMID = @ID
-- remove event batch from this campaign
update dbo.FAFEVENTBATCH
set EVENTPROGRAMID = NULL, CHANGEDBYID = @CHANGEAGENTID, DATECHANGED = @CURRENTDATE
where EVENTPROGRAMID = @ID
exec dbo.USP_FAFPROGRAM_DELETEBYID_WITHCHANGEAGENTID @ID, @CHANGEAGENTID
end try
begin catch
exec dbo.USP_RAISE_ERROR
ROLLBACK TRAN
return 1;
end catch
COMMIT TRAN;
return 0;
end