USP_KPIINSTANCEHISTORY_DELETEBYDATERANGE
Deletes a KPI instance's history records based on a date range.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@KPIINSTANCEID | uniqueidentifier | IN | |
@STARTDATE | datetime | IN | |
@ENDDATE | datetime | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@TIMEPRECISION | bit | IN |
Definition
Copy
CREATE procedure dbo.USP_KPIINSTANCEHISTORY_DELETEBYDATERANGE(@KPIINSTANCEID uniqueidentifier,
@STARTDATE datetime,
@ENDDATE datetime,
@CHANGEAGENTID uniqueidentifier,
@TIMEPRECISION bit = 0)
as
set nocount on;
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
--if using time precision we may have several entries for a given day which we do not want to delete
if @TIMEPRECISION = 0
begin
set @STARTDATE = dbo.UFN_DATE_GETEARLIESTTIME(@STARTDATE)
set @ENDDATE = dbo.UFN_DATE_GETLATESTTIME(@ENDDATE);
end
delete from dbo.KPIINSTANCEHISTORY
where KPIINSTANCEID = @KPIINSTANCEID
and ASOFDATE between @STARTDATE and @ENDDATE;
delete from dbo.KPIINSTANCESTATUSHISTORY
where KPIINSTANCEID = @KPIINSTANCEID
and ASOFDATE between @STARTDATE and @ENDDATE;
/* 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;