|
11 / 11 / 2
Регистрация: 15.07.2016
Сообщений: 132
|
|||||||||||||||||||||
Универсальный логирующий триггер17.10.2019, 16:06. Показов 4807. Ответов 5
Написал триггер для логирования изменений в таблице.
Триггер записывает изменения в виде xml строки. Для Insert и Delete записываются все поля. В случае Update логируются только измененные поля. Для этого нужно выделить только те ячейки в строке, которые изменились. Я это делаю с помощью курсора и подготовленного запроса.
Мне кажется это не очень эффективно. Посоветуйте пожалуйста как оптимизировать этот код и сделать его более универсальным. Весь код триггера: Кликните здесь для просмотра всего текста
Пример XML: Кликните здесь для просмотра всего текста
0
|
|||||||||||||||||||||
| 17.10.2019, 16:06 | |
|
Ответы с готовыми решениями:
5
Универсальный указатель или универсальный скалярный тип
|
|
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
|
||||||
| 17.10.2019, 17:10 | ||||||
0
|
||||||
|
11 / 11 / 2
Регистрация: 15.07.2016
Сообщений: 132
|
|
| 17.10.2019, 18:45 [ТС] | |
|
Если честно я не совсем уловил в чем отличие, кроме того что нужно всё поля вручную вписывать.
Я хочу добиться универсальности. В идеале, что б была возможность просто скопировать триггер, без изменений, на все таблицы которые я хочу логировать. А если придется вручную, для каждой таблицы, для всех полей (которых может быть 30+), корректировать код, то зачем это нужно. Можно ли внутри триггера получить имя таблицы для которой он выполняется? Кроме этого, есть ли ещё какой-нибудь хитрый, эффективный способ получить из inserted только те поля которые изменились, а не строки целиком?
0
|
|
|
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
|
|
| 17.10.2019, 18:57 | |
Сообщение было отмечено pincet как решение
Решение
Pavel Rem, что мешает написать генератор триггеров с вменяемым содержимым, а не сочинять универсального монстра с перекладыванием inserted+deleted во временные таблицы и анализом метаданных?
0
|
|
|
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
|
|
| 17.10.2019, 21:29 | |
Сообщение было отмечено pincet как решение
Решение
Изобретения вечного двигателя не применяются к рассмотрению.
Почему бы и нам изобретателям универсального триггера не говорить сразу "нет!!!"?
0
|
|
|
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
|
|
| 19.10.2019, 17:04 | |
|
0
|
|
| 19.10.2019, 17:04 | |
|
Помогаю со студенческими работами здесь
6
Триггер для добавления к строке название таблицы, в которой содержится триггер Разработать триггер, запускаемый при занесении новой строки в таблицу. Триггер должен увеличивать счетчик ч Триггер, вызывающий процедуру, в которой выполняется select к этой таблице (откуда был вызван триггер) Т-Триггер на ИЛИ-НЕ элементах и что это за триггер? Взаимодействие коллайдеров (триггер и не триггер) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|