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

Отследить изменение в таблице и запись измененного

$
0
0
Всем доброго времени суток.
Товарищи, помогите с решением проблемы.
Суть. Надо написать LOG событий. Данные получаю по СОМ порту с разных устройств (контроллеров) и пишу в БД. Вывод данных, с помощью PHP и JS на странице.
Надо поймать изменение состояния данных и записать в LOG таблицу.
Как я решил проблему, НО она мне не нравится. Нужен короткий код.

Я создал входную таблицу "Т1" (83 колонки), и точно такую же "Т2"(83 колонки), и таблицу логов "Т3(3 колонки)".
Написал триггер (если коротко то ...)
BEGIN
       SET @x = (select ps_abk_ch1 from Т1) ;  
       SET @a = (select ps_abk_ch1 from Т2) ;
        .................
       SET @x83 = (select ps_abk_ch83 from Т1) ;  
       SET @a83 = (select ps_abk_ch83 from Т2) ;

   if ( @x !=  @a) then
     insert Т3 set ocher =  @x, ps_name='АБК',ps_ch = 'Датчик № 1',ps_shtamp =  @dat ;
     UPDATE   Т2 SET ps_abk_ch1 = @x;
    end if;

..................

END

И так, для 83 точек.
Подскажите, как можно короче описать сравнение ИЛИ смотреть перед тем, что меняется и записывать в Т3.
На стороне сервера в PHP и JS все решается быстро, а вот внутри БД, как?

Viewing all articles
Browse latest Browse all 7251

Trending Articles