Knocks/BackEnd/Knoks.PriceDB/Stored Procedures/CRT_UpdateTasks_LastRun.sql

62 lines
1.5 KiB
Transact-SQL

CREATE PROCEDURE [dbo].[CRT_UpdateTasks_LastRun]
@i_CRTT_ID int = null
AS
--- exec CRT_UpdateTasks_LastRun 2
set nocount ON
declare @i_Year int,
@i_Month int,
@i_Week int,
@i_Day int,
@i_Hour int,
@i_Minute int,
@CRTT_ID int,
@TableName sysname,
@Source_TableName sysname,
@UnitDefinition varchar(15),
@LastRun datetime,
@EndOfLastRun datetime,
@AffectedRows int,
@sql varchar(max)
declare cTasks cursor local static for
select CRTT_ID, CRTT_TableName, CRTT_Source_TableName, CRTT_UnitDefinition, CRTT_LastRun
from CRT_tasks with (nolock)
where 1=1
and CRTT_Name <> '1Minute'
and CRTT_IsActive = 1 and CRTT_Source_TableName <> '' and (CRTT_ID = @i_CRTT_ID or @i_CRTT_ID is null)
order by 1
open cTasks
fetch next from cTasks into @CRTT_ID, @TableName, @Source_TableName, @UnitDefinition, @LastRun
while @@fetch_status = 0
begin
--raiserror('Update Tasks from table %s...', 0, 1, @TableName) WITH NOWAIT
--SELECT @TableName TableName, @LastRun LastRun, @1Min_MinDate [1Min_MinDate], @1Min_MaxDate [1Min_MaxDate], @1Min_Period [1Min_Period]
set @SQL = 'Update [dbo].[CRT_Tasks] set [CRTT_LastModifiedDate] = GetDate(), [CRTT_LastRun] = (select Max(CRTD_Period) from '
+ quotename(@TableName) + ' with (nolock)) where [CRTT_ID] = ' + cast(@CRTT_ID as varchar(10))
--select @SQL
exec (@SQL)
fetch next from cTasks into @CRTT_ID, @TableName, @Source_TableName, @UnitDefinition, @LastRun
end
close cTasks
deallocate cTasks