Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Sybase: как получить доступ к измененным столбцам в триггере обновления

Автор вопроса: Eric LiuОтветов: 2

Я пишу триггер, чтобы получить все измененные столбцы после обновления таблицы. Я думаю, что можно запустить триггер при изменении определенного поля. Но этого недостаточно для моего требования. Могу ли я сделать это, сравнив вставленную и удаленную таблицу?

triggerssybase

Ответы

Ответ 1 · aF.

Вы можете создать trigger для обновления! А затем проверьте, какие столбцы были обновлены.

Вы также можете сравнить до (deleted таблица) и после (inserted таблица), но вы также должны видеть каждый столбец отдельно.

Ответ 2 · abe_crabbers

Когда вы говорите "недостаточно общий", это звучит так, как будто вы имели в виду использование триггеров в качестве общего средства выяснения того, какие столбцы в каких таблицах когда изменились, и вам нужен метод для некоторых/многих ваших таблиц, которые различные клавиши и поля.

aF предлагает использовать триггер "для" (или после), и вы можете либо сравнить вставленные и удаленные, либо использовать функцию "if update (имя столбца) ...".

Если вы хотите обобщить вещи, насколько я понимаю, я думаю, это означает, что вам нужно написать некоторые инструменты, которые берут список таблиц, которые вы где-то настраиваете как метаданные, и обрабатывают их в триггеры, которые делают то, что вы хотите ( например, сохранить где-нибудь содержимое первичного ключа, идентификатор таблицы и измененные поля.)

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы