2013-11-01 3 views
0

Я попытался найти разницу между триггерами строк и операторов для DB2, но я все еще не совсем понял :) Если у меня есть случай, который для каждого обновленного столбца в конкретной таблице, имя столбца записывается в другую строку таблицы LOG. Поэтому, если я использую триггер строки, то для каждой строки в транзакции, где эта строка таблицы обновляется, запускается триггер. В триггере оператора, если для этой таблицы обновлено 10 строк, триггер обновления запускается только один раз? Если да, срабатывает ли оператор все еще так же, как триггер строки, только более оптимальный?DB2 9.7 statement vs row triggers

В триггере строки, я понимаю, что при доступе к параметрам DELETED или INSERTED я могу получить указатель на обновленную строку. Но как насчет запуска оператора? Параметры DELETED и INSERTED содержат список всех строк для определенного столбца?

ответ

1

Возможно, вы захотите ознакомиться с разделом Информационного центра по телефону designing triggers.

В этом разделе вы найдете информацию о том, когда trigger fires,

Когда триггер активируется, он работает в соответствии с его уровнем зернистости следующим образом:

ДЛЯ КАЖДОЙ ROW

Выполняется столько раз, сколько количество строк в наборе затронутых строк. Если вам нужно обратиться к конкретным строкам, на которые воздействует инициированное действие , используйте графу «ДЛЯ КАЖДОГО РУКА». Примером этого является сравнение новых и старых значений обновленной строки в триггере UPDATE по умолчанию.

ДЛЯ КАЖДОГО ЗАЯВЛЕНИЕ

Она проходит один раз для всего события триггера.

Если множество изменяемых строк пусто (то есть, в случае поиск UPDATE или DELETE, в которых ИНЕКЕ не имеют права ни одной строки), а, для каждого триггера ROW не работает. Но триггер ЗА ЗАГРУЗКОЙ еще раз запускается.

Вы также увидите, как доступ к старым и новые данные либо by row или полный table at once.

Смежные вопросы