В нашей действующей / производственной базе данных я пытаюсь добавить триггер к таблице, но безуспешно. Я пытался несколько раз, но это заняло более 30 минут, чтобы завершить оператор создания триггера, и я отменил его.
Эта таблица часто читается / записывается несколькими разными процессами. Я отключил запланированные задания, которые обновляют таблицу, и пытался время от времени, когда в таблице меньше активности, но я не могу остановить все, что обращается к таблице.
Я не верю, что существует проблема с самим оператором создания триггера. Оператор создания триггера был успешным и быстрым в тестовой среде, и триггер работает правильно, когда строки вставляются / обновляются в таблицу. Хотя, когда я создал триггер в тестовой базе данных, в таблице не было нагрузки, и в ней было значительно меньше строк, что отличается от данных в рабочей / рабочей базе данных (100 против 13 000 000 +).
Вот оператор создания триггера, который я пытаюсь запустить
CREATE TRIGGER [OnItem_Updated]
ON [Item]
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;
IF update(State)
BEGIN
/* do some stuff including for each row updated call a stored
procedure that increments a value in table based on the
UserId of the updated row */
END
END
Могут ли быть проблемы с созданием триггера для таблицы во время обновления строк или если в ней много строк?
В SQLServer триггеры создаются включенными по умолчанию. Можно ли создать отключенный по умолчанию триггер?
Есть еще идеи?