Это очень странная проблема. Я спрашивал об этом раньше здесь:
Как мой триггер был удален?
Я переименовал свой триггер и подумал, что он прекратил свое действие, но проблема, похоже, снова возникла. Вот описание:
Если вы можете понять это, вы настоящий гуру SQL! Это одна из самых странных вещей, которые я когда-либо видел.
Я добавил триггер к таблице в нашей базе данных. Сервер SQL 2008. Триггер не делает ничего особенно сложного. Просто изменяет поле LastUpdated в таблице при изменении определенных полей. Это триггер «после обновления».
Существует большое унаследованное приложение C ++, которое выполняет все виды огромных запросов к этой базе данных. Каким-то образом (я понятия не имею, как) он удаляет этот триггер. Он не удаляет другие триггеры, и я уверен, что он не сбрасывает явно триггер или таблицу. Разработчики этого приложения даже ничего не знают о моих триггерах.
Как это возможно ??
Я попытался запустить трассировку с использованием SQL Server Profiler, и я просмотрел каждую отправляемую команду и выполнил их с помощью SQL Management Studio, но на мой триггер это не повлияло. Кажется, это происходит только когда я запускаю приложение. WTF: (
Другие разработчики считают, что они не удаляют его явно. Он не существует в sys.objects или sys.triggers, так что это не сбой с SSMS. Так растерянно :( Думаю, я просто переименую его и надеюсь на лучшее? Не могу придумать, что еще можно попробовать. Несколько комментариев ниже спрашивают, удаляется ли триггер, или он просто отключен, или не работает. он полностью удаляется. Кроме того, проблема не связана с фактическим содержимым триггера. Как я уже говорил, я удаляю содержимое и заменяю каким-то чрезвычайно простым кодом, который ничего не делает, затем он все еще удаляется.
Приветствие
Mark