Триггеры и репликация SQL Server

У меня есть триггер при обновлении таблицы, которая вставляется в другую таблицу. Эта другая таблица существует только в одном месте (таблица не реплицируется). Если я установлю триггер не для репликации, будет ли мой триггер обновления срабатывать, когда реплицированные данные поступают в таблицу с триггером? Таким образом, я могу иметь триггер и таблицы, в которые он вставляется, только в одном месте.


person Jeff    schedule 13.03.2011    source источник


Ответы (1)


Нет: это пункт НЕ ДЛЯ РЕПЛИКАЦИИ. Из MSDN

  • Триггеры

Триггер не выполняется, когда агент репликации выполняет операцию вставки, обновления или удаления.

Ключевым моментом здесь является «агент репликации»: это процесс, который заставляет триггер не срабатывать.

person gbn    schedule 13.03.2011
comment
Есть ли способ выполнить то, что я хочу здесь, без репликации всех таблиц, в которые вставляется триггер? - person Jeff; 13.03.2011
comment
@JeffN825: Просто установите НЕ ДЛЯ РЕПЛИКАЦИИ только для реплицированной таблицы. Это не имеет значения для нереплицированных таблиц. Это так просто. - person gbn; 13.03.2011
comment
Но если я не реплицирую таблицу, в которую вставляется триггер, и триггер срабатывает в другом месте, где нет таблиц для вставки, не будет ли триггерная бомба? - person Jeff; 13.03.2011
comment
@JeffN825: Я сказал тебе, что это не имеет значения. NOT FOR REPLICATION просто говорит, что не срабатывает, если данные изменены агентом репликации. Любые таблицы или объекты, на которые ссылается триггер, не имеют значения. Просто попробуйте. Вы читали мою ссылку? - person gbn; 13.03.2011
comment
Да, кажется, теперь я понимаю. Попытаюсь. Спасибо. - person Jeff; 13.03.2011