INSERT 事件和 DELETE 事件

表上的 INSERT 和 DELETE 事件由那些关键字和 ON table 子句定义,使用以下语法。
在表上 INSERT 或 DELETE 事件
元素 描述 限制 语法
table 触发表的名称 必须在数据库中存在 标识符

当 INSERT 语句在其 INTO 子句中包含指定的 table (或 table 的同义词)时, Insert 触发被激活。同样地,当 DELETE 语句在其 FROM 子句中包含指定的 table (或 table 的同义词)时,Delete 触发器被激活。

如果 Insert 触发器指定的 table 是包含 Insert 子句的 MERGE 语句的目标表,则 MERGE 语句也可以激活 Insert 触发器,同样地,如果 Delete 触发器指定的 table 是包含 Delete 子句的 MERGE 语句的目标表,则 MERGE 语句也可以激活 Delete 触发器。

当 TRUNCATE TABLE 语句删除表的所有行时,它不会激活 Delete 触发器。如果要对一个表定义启用的 Delete 触发器,而您不具有此表的 Alter 特权,则如果您视图移除此表,即使 TRUNCATE 语句不是 Delete 触发器的触发事件,数据库服务器仍会返回错误。(有关删除操作所需的自由访问权的更多信息,请参阅 TRUNCATE 语句。)

对于视图上的触发器,INSTEAD OF 关键字必须紧跟在指定触发事件类型的 INSERT 、DELETE 或 UPDATE 关键字之前,且视图(而不是表)的名称或同义词必须跟在 ON 关键字之后。视图上的 INSTEAD OF 触发器部分描述定义 INSTEAD OF 触发事件的语法。

一个表上可以定义多个 Insert 触发器和多个 Delete 触发器。

如果您在表层次结构中的子表上定义触发器,且子表支持级联删除,则超级表上的 DELETE 操作将激活子表上的 Delete 触发器。

关于 Insert 触发器和 Delete 触发器的操作上的相关性和限制的信息,另请参阅触发器的再进入一节。