62 lines
1.5 KiB
Transact-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 |