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