当系统时间为>时,SQL更新触发器列时间为20分钟

时间:2015-11-06 12:42:57

标签: sql sql-server triggers

我是SQL Triggers的新手。

我有一个列" Status_ID"它由不同的值更新。我的触发器应标记一列" Alarm_Late_Pickup"每当" Status_ID"未更新为值" 4"在当前时间的20分钟之前,下一步是标记另一列" Late_Pickup"当" Status_ID"未设置为" 5"当前时间大于" Pickup_Time"列。

1 个答案:

答案 0 :(得分:4)

我会说你需要一个事件计划而不是触发器。但是,在SQL Server中,您可以使用计算列或视图执行所需操作:

ALTER TABLE 
    t
ADD 
    IsFinished AS (CASE 
                        WHEN 
                            (Pickup_Time < DATEADD(MINUTE, -20, GETDATE()) 
                            OR
                            (Delivery_Time < DATEADD(MINUTE, -20, GETDATE()))) THEN 1 
                        ELSE 0 END)

这会向表中添加一个列,每次使用时都会重新计算。