USP_CLASS_MEETING_TEMPLATE_DELETE
Executes the "Class Meeting Template 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_CLASS_MEETING_TEMPLATE_DELETE
(
@ID uniqueidentifier, -- Note this is a representative record, apply to the entire class.
@CHANGEAGENTID uniqueidentifier
)
as begin
declare @CLASSID uniqueidentifier
select @CLASSID = CLASSMEETINGGROUP.CLASSID
from dbo.CLASSMEETINGGROUP
inner join dbo.CLASSMEETINGTEMPLATE on CLASSMEETINGGROUP.ID = CLASSMEETINGTEMPLATE.CLASSMEETINGGROUPID
where CLASSMEETINGTEMPLATE.ID = @ID
-- use the system generated delete routine to allow proper recording of the deleting agent
declare @contextCache varbinary(128);
declare @e int;
set @contextCache = CONTEXT_INFO();
/* set CONTEXT_INFO to @CHANGEAGENTID */
if not @CHANGEAGENTID is null
set CONTEXT_INFO @CHANGEAGENTID;
update [PEER_GROUP]
set [PEER_GROUP].PATTERNBLOCKID = null
from CLASSMEETINGTEMPLATE [PRIMARY]
inner join CLASSMEETINGGROUP [PRIMARY_GROUP] on [PRIMARY].CLASSMEETINGGROUPID = [PRIMARY_GROUP].ID
inner join CLASSMEETINGGROUP [PEER_GROUP] on [PRIMARY_GROUP].CLASSID = [PEER_GROUP].CLASSID
inner join CLASSMEETINGTEMPLATE [PEER] on [PEER_GROUP].ID = [PEER].CLASSMEETINGGROUPID and
[PRIMARY].CYCLEDAYID = [PEER].CYCLEDAYID
where [PRIMARY].ID = @ID
and [PEER_GROUP].PATTERNBLOCKID is not null
delete from [PEER]
from CLASSMEETINGTEMPLATE [PRIMARY]
inner join CLASSMEETINGGROUP [PRIMARY_GROUP] on [PRIMARY].CLASSMEETINGGROUPID = [PRIMARY_GROUP].ID
inner join CLASSMEETINGGROUP [PEER_GROUP] on [PRIMARY_GROUP].CLASSID = [PEER_GROUP].CLASSID
inner join CLASSMEETINGTEMPLATE [PEER] on [PEER_GROUP].ID = [PEER].CLASSMEETINGGROUPID and
[PRIMARY].CYCLEDAYID = [PEER].CYCLEDAYID
where [PRIMARY].ID = @ID
select @e=@@error;
-- reset CONTEXT_INFO to previous value
if not @contextCache is null
set CONTEXT_INFO @contextCache;
if @e <> 0
return 2;
-- Refresh the class meeting records
exec dbo.USP_CLASSMEETING_CREATEFROMTEMPLATES @CLASSID, @CHANGEAGENTID
return 0;
end