Quantcast
Channel: SQL.ru: Microsoft SQL Server
Viewing all articles
Browse latest Browse all 7251

Триггер Instead of

$
0
0
Доброго времени суток.
Есть база 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, но как мне его реализовать в коде не знаю, а сделать нужно до конца недели. Помогите?

Viewing all articles
Browse latest Browse all 7251

Trending Articles