USP_SCHEDULEDATE_CLEANUP
Delete orphaned schedule dates.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
CREATE PROCEDURE [dbo].[USP_SCHEDULEDATE_CLEANUP]
(
@CHANGEAGENTID uniqueidentifier = null
)
as
set nocount on
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
SCHEDULEDATE
where ID not in
(select SCHEDULEDATE.ID
from SCHEDULEDATE
inner join
(select TERM.STARTDATE, TERM.ENDDATE, ACADEMICYEAR.SCHOOLID from TERM
inner join SESSION on SESSION.id = TERM.SESSIONID
inner join ACADEMICYEAR on ACADEMICYEAR.ID = SESSION.ACADEMICYEARID
) as TERMDATES
on TERMDATES.SCHOOLID = SCHEDULEDATE.SCHOOLID and
(SCHEDULEDATE.DATE between TERMDATES.STARTDATE and TERMDATES.ENDDATE))
delete
SCHEDULEDATEADJUSTMENT
where ID not in
(select SCHEDULEDATEADJUSTMENT.ID
from SCHEDULEDATEADJUSTMENT
inner join
(select TERM.STARTDATE, TERM.ENDDATE, ACADEMICYEAR.SCHOOLID from TERM
inner join SESSION on SESSION.id = TERM.SESSIONID
inner join ACADEMICYEAR on ACADEMICYEAR.ID = SESSION.ACADEMICYEARID
) as TERMDATES
on TERMDATES.SCHOOLID = SCHEDULEDATEADJUSTMENT.SCHOOLID and
(SCHEDULEDATEADJUSTMENT.DATE between TERMDATES.STARTDATE and TERMDATES.ENDDATE))
delete
SCHEDULEDATEADJUSTMENT
from
SCHEDULEDATEADJUSTMENT
inner join SCHEDULEDATE
on SCHEDULEDATE.DATE = SCHEDULEDATEADJUSTMENT.DATE and SCHEDULEDATE.SCHOOLID = SCHEDULEDATEADJUSTMENT.SCHOOLID
where
INSESSION = 0 and
not ADJUSTEDTIMETABLEDAYID is null
delete
SCHEDULEDATEADJUSTMENT
from
SCHEDULEDATEADJUSTMENT
inner join SCHEDULEDATE
on SCHEDULEDATE.DATE = SCHEDULEDATEADJUSTMENT.DATE and SCHEDULEDATE.SCHOOLID = SCHEDULEDATEADJUSTMENT.SCHOOLID
where
INSESSION = 1 and
not NEXTTIMETABLEDAYID is null
-- reset CONTEXT_INFO to previous value
if not @contextCache is null
set CONTEXT_INFO @contextCache
return 0