如何确定哪个Action触发了处理多个事件的触发器

时间:2013-12-03 18:40:52

标签: sql-server sql-server-2008 tsql ddl-trigger

我有一个记录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

每当创建或更改表,视图或索引时,我都想添加特殊处理。

如何确定哪个事件触发了处理多个事件的TRIGGER的触发器?

1 个答案:

答案 0 :(得分:1)

你在触发器中使用这样的东西:

SELECT EVENTDATA().value('(/EVENT_INSTANCE/EventType)[1]','nvarchar(max)')