Помогите триггер написать

ДmK

есть база, в которой внешняя программа периодически обновляет одно поле(M).требуется в зависимости от времени обновления( текущая минута), записывать данные из этого поля в другое поле этой же таблицы, название которого соотносится с текущей минутой, т.е. есть поля m1,m2...m60 и в момент времени HH:01 надо значение из М писать в m1, в HH:20 - в m20 и т.д.хочется использовать для этого триггер.начал так:
AS begin
DECLARE @mi varchar(<b>4</b>)
DECLARE @m varchar(<b>4</b>)

SELECT DATENAME(minute, getdate()) AS m
Set @mi='m'+@m
насчет последней строчки не уверен, получу ли я в mi имя поля типа "m20"и вот как потом это имя подставить в SET ИмяПоля = M ?просьба ногами не пинать, T-SQL только начал изучать :)
3 ответа

ДmK

есть база, в которой внешняя программа периодически обновляет одно поле(M).требуется в зависимости от времени обновления( текущая минута), записывать данные из этого поля в другое поле этой же таблицы, название которого соотносится с текущей минутой, т.е. есть поля m1,m2...m60 и в момент времени HH:01 надо значение из М писать в m1, в HH:20 - в m20 и т.д.хочется использовать для этого триггер.
Сначала измените структуру хранения данных. Перейдите от хранения в столбцах к хранению в записях. И триггер не нужен будет.


ДmK

2ДmK
select @m = datepart(mm, getdate())

update MyTable
set m1 = case when @m = <b>1</b> then M else m1 end,
 m2 = case when @m = <b>2</b> then M else m2 end,
 m3 = case when @m = <b>3</b> then M else m3 end,
 ................
 m60 = case when @m = <b>60</b> then M else m60 end
from inserted i
where MyTable.Pk = i.Pk
Но задача странная......


ДmK

Но задача странная......
спасибо, ваш код с небольшими переделками работает.да, согласен, странноватая задача, все это можно легко на клиенте сделать, который и пишет в первичное поле, но захотелось на стороне сервера :)alexeyvgмне удобнее хранить данные по периоду в одной записи и выбирать одной