Sql触发器在给定时间段内更新列值

时间:2012-05-29 11:26:25

标签: sql-server triggers

我有一个名为Settings的表,其中包含columnA,columnB,columnC,columnD,columnE及其值,如下所示:

columnA = 1000 columnB = 100 columnC = 200 columnD = 18 columnE = 6

我希望在晚上18点到早上6点之间更改columnA / B / C中的值。

我正在考虑通过查看时间戳来更新值的触发器,但我不知道该怎么做。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

如果您可以控制阅读表格的应用程序,那么您是否可以创建一个检查时间并返回所需值的视图?

类似的东西:

SELECT 
  [COLUMN1],
  CASE 
    WHEN DATEPART("hh", GETDATE()) BETWEEN 6 AND 14 THEN 1
    ELSE [COLUMN2] END AS [COLUMN2],
  [COLUMN3]
FROM [TABLE1]

修改

如果您通过应用程序内置的SQL查询表,则可以更改SQL查询以使用上面的CASE返回这些值:

CASE 
    WHEN DATEPART("hh", GETDATE()) BETWEEN 6 AND 14 THEN 1
    ELSE [COLUMN2] END AS [COLUMN2],