Я пишу триггер, чтобы получить все измененные столбцы после обновления таблицы. Я думаю, что можно запустить триггер при изменении определенного поля. Но этого недостаточно для моего требования. Могу ли я сделать это, сравнив вставленную и удаленную таблицу?
Вопрос
Sybase: как получить доступ к измененным столбцам в триггере обновления
Ответы
Ответ 1 · aF.
Вы можете создать trigger для обновления! А затем проверьте, какие столбцы были обновлены.
Вы также можете сравнить до (deleted таблица) и после (inserted таблица), но вы также должны видеть каждый столбец отдельно.
Ответ 2 · abe_crabbers
Когда вы говорите "недостаточно общий", это звучит так, как будто вы имели в виду использование триггеров в качестве общего средства выяснения того, какие столбцы в каких таблицах когда изменились, и вам нужен метод для некоторых/многих ваших таблиц, которые различные клавиши и поля.
aF предлагает использовать триггер "для" (или после), и вы можете либо сравнить вставленные и удаленные, либо использовать функцию "if update (имя столбца) ...".
Если вы хотите обобщить вещи, насколько я понимаю, я думаю, это означает, что вам нужно написать некоторые инструменты, которые берут список таблиц, которые вы где-то настраиваете как метаданные, и обрабатывают их в триггеры, которые делают то, что вы хотите ( например, сохранить где-нибудь содержимое первичного ключа, идентификатор таблицы и измененные поля.)
Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.
Похожие материалы
- Фон шаблона элемента управления ComboBox WPF IsMouseOver
- Свойство триггера в другом событии элемента управления WPF
- Триггер AFTER INSERT завершается ошибкой при обновлении более одной строки
- Вызов sproc для каждой затронутой записи из триггера в Sybase ASA 6
- Драйвер Sybase Jconnect - что такое размер выборки по умолчанию и может ли увеличение размера выборки
- Поворот в Sybase SQL Query?