2012-05-29 2 views
0

У меня есть таблица под названием Настройка с Columna, columnB, columnC, columnD, columnE и их значением, как следует:Sql триггера для обновления значения столбца в определенный период времени

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

Я хочу изменить значение в столбце A/B/C, когда время находится между 18:00 и 6:00.

Я думаю о каком-то триггере, который обновляет значения, глядя на метку времени, но я просто не знаю, как это сделать. Есть идеи?

+0

Триггер вызывается только при выполнении квалификационной инструкции по таблице. Вероятно, вы захотите создать задание агента SQL и выполнить его в определенное время. – Dave

+0

. Сколько строк имеет таблица? –

+0

У этого только 1 единственного ряда :) Есть больше столбцов, чем те, которые я опубликовал, но они не актуальны. –

ответ

0

Если вы можете управлять приложением, читающим таблицу, то можете ли вы создать представление, которое проверяет время и возвращает требуемые значения?

Что-то вроде:

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

Edit:

Если вы запрашиваете таблицу через SQL, построенный в вашем приложении вы можете изменить запрос SQL, чтобы вернуть эти значения с выше CASE:

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

Приложение для чтения и записи из базы данных - это то, что я создал. –

+0

Вы должны иметь возможность перенаправлять чтения в представление и записывать обратно в таблицу, просто зависит от того, как все настроено. Наличие представления, которое всегда возвращает правильные значения, удаляет шаг, который может выйти из строя (например, агент SQL). – bendataclear