SQL триггер исчезает - PullRequest
       9

SQL триггер исчезает

2 голосов
/ 14 сентября 2009

У меня есть триггер в таблице сервера SQL. Этот триггер исчез. Есть ли что-то систематическое, что может быть причиной его удаления?

На этой базе данных нет репликации.

Ответы [ 3 ]

4 голосов
/ 14 сентября 2009

2 варианта, если исчезли

  • DROP / CREATE TABLE ...
  • DROP TRIGGER ...

Опция, если не работает_

  • ALTER TABLE ... DISABLE TRIGGER ...

Вы можете увидеть, была ли таблица воссоздана с использованием этого. Конечно, это не говорит вам, кто ...

SELECT create_date, modify_date FROM sys.objects WHERE name = 'MyTable'

Например, изменение таблицы через GUI SSMS, которое пошло не так, может вызвать триггер. Но не существует систематического процесса случайного срабатывания триггера: он требует от кого-то явного действия.

4 голосов
/ 14 сентября 2009

Воссоздание таблицы может сбрасывать триггер. Отключение триггеров также возможно. Это может быть один из этих вариантов?

1 голос
/ 14 сентября 2009

В дополнение к тому, что сказал Рэндольф, возможно, что какой-то другой разработчик или dba сбросил триггер, потому что это мешало тому, что он или она хотели сделать. Не все понимают последствия таких глупых поступков, чтобы они случались. Это было бы хорошим примером необходимости более формализованных процессов и ограничения доступа к производству, если это так.

Надеюсь, у вас есть триггер под управлением источника и вы можете легко восстановить его.

Вы можете также рассмотреть возможность реализации триггеров DDL, чтобы вы могли предотвратить подобные вещи в будущем или хотя бы посмотреть, кто их совершил.

...