Как определить, какое действие вызвало триггер, который обрабатывает несколько событий

У меня есть триггер базы данных, который регистрирует изменения DDL. Имеет следующий формат

CREATE TRIGGER [Log_DDL_Changes]

ON DATABASE
FOR 
CREATE_TABLE, ALTER_TABLE, DROP_TABLE, 
CREATE_INDEX, ALTER_INDEX, DROP_INDEX, 
CREATE_PROCEDURE, ALTER_PROCEDURE, DROP_PROCEDURE,
CREATE_VIEW, ALTER_VIEW, DROP_VIEW,
CREATE_FUNCTION, ALTER_FUNCTION, DROP_FUNCTION, RENAME

--Fires only for CREATE / ALTER / DROP Table and PROCs
AS 

BEGIN
.
.
.
END

Я хотел бы добавить специальную обработку всякий раз, когда таблица, представление или индекс создаются или изменяются.

Как я могу определить, какое событие сработало для триггера, который обрабатывает несколько событий?

1 ответ

Решение

Вы используете что-то вроде этого в вашем триггере:

SELECT EVENTDATA().value('(/EVENT_INSTANCE/EventType)[1]','nvarchar(max)')
Другие вопросы по тегам