Я пишу триггер, чтобы получить все измененные столбцы после обновления таблицы. Я думаю, что можно запустить триггер при изменении определенного поля. Но этого недостаточно для моего требования. Могу ли я сделать это, сравнив вставленную и удаленную таблицу?
Sybase: как получить доступ к измененным столбцам в триггере обновления
Ответы (2)
Вы можете создать trigger для обновления! А затем проверьте, какие столбцы были обновлены.
Вы также можете сравнить до (deleted таблица) и после (inserted таблица), но вы также должны видеть каждый столбец отдельно.
Когда вы говорите «недостаточно общий», это звучит так, как будто вы имели в виду использование триггеров в качестве общего средства выяснения того, какие столбцы в каких таблицах когда изменились, и вам нужен метод для некоторых/многих ваших таблиц, которые различные клавиши и поля.
aF предлагает использовать триггер «для» (или после), и вы можете либо сравнить вставленные и удаленные, либо использовать функцию «if update (имя столбца) ...».
Если вы хотите обобщить вещи, насколько я понимаю, я думаю, это означает, что вам нужно написать некоторые инструменты, которые берут список таблиц, которые вы где-то настраиваете как метаданные, и обрабатывают их в триггеры, которые делают то, что вы хотите ( например, сохранить где-нибудь содержимое первичного ключа, идентификатор таблицы и измененные поля.)