Это ОЧЕНЬ странная проблема. Я спросил об этом раньше: How did my trigger get deleted?Как мой триггер был удален? sql
Я переименовал свой спусковой крючок, и я подумал, что это прекратилось, но проблема, похоже, снова вернулась. Вот описание:
Если вы можете это выяснить, вы являетесь истинным гуру SQL! Это одна из самых странных вещей, которые я когда-либо видел.
Я добавил триггер в таблицу в нашей базе данных. Сервер - SQL 2008. Триггер не делает ничего особенно сложного. Просто изменяет поле LastUpdated в таблице при изменении определенных полей. Это триггер «После обновления».
Существует большое унаследованное приложение на C++, которое запускает все огромные запросы против этой базы данных. Как-то (я понятия не имею, как) он удаляет этот триггер. Он не удаляет никаких других триггеров, и я уверен, что это не явное удаление триггера или таблицы. Разработчики этого приложения даже ничего не знают о моих триггерах.
Как это возможно ???
Я попытался запустить трассировку с использованием SQL Server Profiler, и я прошел через каждую команду, что она отправляет и запускает их с помощью SQL Management Studio, но мой триггер не затрагивается. Кажется, это происходит, когда я запускаю приложение. WTF :(
Другие разработчики считают, что они не удаляют его явно. Это не существует в sys.objects или sys.triggers, поэтому это не сбой с SSMS. Так что смутно :(Угадайте, я просто переименую это и надеяться на лучшее? Не могу придумать что-нибудь еще, чтобы попробовать. Несколько комментариев ниже спросили, удаляется триггер или просто отключен или не работает. Как я уже сказал, он полностью удаляется. не связанных с реальным содержимым триггера. Как я уже говорил, что я удалить содержимое и заменить какой-то очень простой код, который ничего, то он по-прежнему удален не делать.
Приветствия Марк
Согласовано. Вероятно, это утверждение похоже на: DROP TABLE MyTable SELECT * INTO MyTable FROM AnotherTable WHERE Поле = True –