универсальный триггер на update

АндрейКур
Дата: 11.09.2006 15:05:45
Уважаемые Коллеги!

У меня несколько таблиц, изменения которых нужно протоколировать, но т.к. БД еще на стадии проектирования (запускается блоками), то структуры таблиц еще меняются, и дабы голове не помнить про изменения в триггере, хотелось бы написать универсальный триггер, который по
"select name as nn from syscolumns where id = object_id('spr_org')"
будет выбирать поля искомой таблицы, и потом по каждому name сравнивать значение в таблицах inserted и таблице deleted, и где значения отличаются - заменять их и записывать изменения в лог, кто нибудь делал так?
триггер
Дата: 11.09.2006 15:20:58
хочу только пердупердить, что с назреваемым в Вашем случае динамическим запросом легкой жизни не будет: inserted и deleted в EXEC-вызовах не видны. Светит либо разруливание через временные таблицы, либо можно вместо триггера написать и периодически выполнять генератор триггера, который автоматом на основе таблицы будет генерить триггер с нужными полями, без всякой динамики и временных таблиц...
триггер
Дата: 11.09.2006 15:22:56
p.s. про жопу с TEXT, NTEXT и IMAGE не забудьте еще.
АндрейКур
Дата: 11.09.2006 15:57:15
триггер
хочу только пердупердить, что с назреваемым в Вашем случае динамическим запросом легкой жизни не будет: inserted и deleted в EXEC-вызовах не видны. Светит либо разруливание через временные таблицы, либо можно вместо триггера написать и периодически выполнять генератор триггера, который автоматом на основе таблицы будет генерить триггер с нужными полями, без всякой динамики и временных таблиц...



Почему он будет динамический? будет два цикла в первом я в цикле перебираю таблицу с названием полей, а во втором цикле уже это название подставляю и сравниваю содержимое по строчно???
Glory
Дата: 11.09.2006 15:59:07
АндрейКур
триггер
хочу только пердупердить, что с назреваемым в Вашем случае динамическим запросом легкой жизни не будет: inserted и deleted в EXEC-вызовах не видны. Светит либо разруливание через временные таблицы, либо можно вместо триггера написать и периодически выполнять генератор триггера, который автоматом на основе таблицы будет генерить триггер с нужными полями, без всякой динамики и временных таблиц...



Почему он будет динамический? будет два цикла в первом я в цикле перебираю таблицу с названием полей, а во втором цикле уже это название подставляю и сравниваю содержимое по строчно???

А это можно сделать без динамического запроса ?? Если не трудно, то покажите как именно
АндрейКур
Дата: 11.09.2006 16:27:16
Почему он будет динамический? будет два цикла в первом я в цикле перебираю таблицу с названием полей, а во втором цикле уже это название подставляю и сравниваю содержимое по строчно???[/quot]
А это можно сделать без динамического запроса ?? Если не трудно, то покажите как именно[/quot]

Видимо да, без динамического не получится...