USP_EVENT_UNDOLASTRUN
Executes the "Event Conflict: Undo Last Scheduling Run" 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_EVENT_UNDOLASTRUN
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
declare @SCHID uniqueidentifier;
set @SCHID = dbo.UFN_PROGRAM_GETLASTSCHEDULEID(@ID);
declare @e int;
declare @contextCache varbinary(128);
/* cache current context information */
set @contextCache = CONTEXT_INFO();
/* set CONTEXT_INFO to @CHANGEAGENTID */
if not @CHANGEAGENTID is null
set CONTEXT_INFO @CHANGEAGENTID;
delete from dbo.EVENT where SCHEDULEID = @SCHID;
declare @EVENTCONFLICTSTODELETE table (ID uniqueidentifier);
insert into @EVENTCONFLICTSTODELETE(ID)
select ID from dbo.EVENTCONFLICT where SCHEDULEID = @SCHID;
delete from dbo.PROGRAMEVENTLOCATION
where EVENTCONFLICTID in (select ID from @EVENTCONFLICTSTODELETE);
delete from dbo.EVENTRESOURCE
where EVENTCONFLICTID in (select ID from @EVENTCONFLICTSTODELETE);
delete from dbo.EVENTSTAFFRESOURCE
where EVENTCONFLICTID in (select ID from @EVENTCONFLICTSTODELETE);
delete from dbo.EVENTCONFLICT
where ID in (select ID from @EVENTCONFLICTSTODELETE);
/* reset CONTEXT_INFO to previous value */
if not @contextCache is null
set CONTEXT_INFO @contextCache;
select @e=@@error;
if @e<>0 return -456; --always return non-zero sp result if an error occurs
return 0;