Доброго времени суток.
Есть база MS SQL 2008. Необходимо менять значение одного поля в таблице в зависимости от его значения. Написал запрос update:
Сделал абсолютно простейший триггер for insert:
И запрос и триггер работают, всё хорошо. Вот только хотелось бы чтоб данные менялись ещё до вставки в таблицу. Если я правильно понимаю то мне нужен триггер Instead OF, но как мне его реализовать в коде не знаю, а сделать нужно до конца недели. Помогите?
Есть база MS SQL 2008. Необходимо менять значение одного поля в таблице в зависимости от его значения. Написал запрос update:
update dbo.pLogData set timeval = DATEADD (minute, DATEPART (minute, timeval) % 10 + 20 - DATEPART (minute, timeval), timeval) where (HozOrgan = '49' or HozOrgan = '50' or HozOrgan = '51' or HozOrgan = '53' or HozOrgan = '54' or HozOrgan = '111' or HozOrgan = '112' or HozOrgan = '113' or HozOrgan = '115' or HozOrgan = '116' or HozOrgan = '117' or HozOrgan = '118' or HozOrgan = '119' or HozOrgan = '570') and (CAST (timeval as time) between '08:30:00' and '08:59:59') and (Remark LIKE '%2: Вход%' or Remark LIKE '%3: Вход%' or Remark LIKE '%1: Вход%')
Сделал абсолютно простейший триггер for insert:
create trigger trpTimeLogData_Inserted_Updated on dbo.plogdata for insert as begin update dbo.pLogData set timeval = DATEADD (minute, DATEPART (minute, timeval) % 10 + 20 - DATEPART (minute, timeval), timeval) where (HozOrgan = '49' or HozOrgan = '50' or HozOrgan = '51' or HozOrgan = '53' or HozOrgan = '54' or HozOrgan = '111' or HozOrgan = '112' or HozOrgan = '113' or HozOrgan = '115' or HozOrgan = '116' or HozOrgan = '117' or HozOrgan = '118' or HozOrgan = '119' or HozOrgan = '570') and (CAST (timeval as time) between '08:30:00' and '08:59:59') and (Remark LIKE '%2: Вход%' or Remark LIKE '%3: Вход%' or Remark LIKE '%1: Вход%') end
И запрос и триггер работают, всё хорошо. Вот только хотелось бы чтоб данные менялись ещё до вставки в таблицу. Если я правильно понимаю то мне нужен триггер Instead OF, но как мне его реализовать в коде не знаю, а сделать нужно до конца недели. Помогите?