Существуют ли риски использования триггеров для DDL_DATABASE_LEVEL_EVENTS по сравнению с перечислением определенных типов событий? - PullRequest
0 голосов
/ 01 июля 2019

У меня есть триггер DDL, который регистрирует изменения схемы базы данных в таблице для целей аудита. Я заметил, что некоторые изменения, которые я сделал, были пропущены (например, создание типа - CREATE_TYPE), и мне нужно его обновить.

Насколько я понимаю, события DDL всегда запускаются человеком. Это правда? Есть ли вероятность того, что такой триггер вызовет сбой запросов?

Этот триггер определен так:

ALTER TRIGGER [name_of_trigger]
ON DATABASE
FOR CREATE_TABLE, ALTER_TABLE, DROP_TABLE, CREATE_INDEX, ALTER_INDEX, DROP_INDEX, ...

Есть ли риск просто использовать универсальное DDL_DATABASE_LEVEL_EVENTS как это?

ALTER TRIGGER [name_of_trigger]
ON DATABASE
FOR DDL_DATABASE_LEVEL_EVENTS

или безопаснее или лучше указывать все типы, которые мне нужны?

1 Ответ

0 голосов
/ 02 июля 2019

Я использую такой триггер (для DDL_DATABASE_LEVEL_EVENTS) и специально исключаю тип события UPDATE_STATISTICS.Вы можете также избегать ALTER INDEX ... REBUILD и ALTER INDEX ... REORGANIZE.

...