CREATE TRIGGER 语句

使用 CREATE TRIGGER 语句在表上定义触发器。您还可以使用 CREATE TRIGGER 在视图上定义 INSTEAD OF 触发器。

该语句是 SQL ANSI/ISO 标准的扩展。

语法

元素 描述 限制 语法
trigger 此处为新的触发器声明的名称 必须在当前数据库中的触发器名称中是唯一的 标识符

用法

除非被禁用。否则当指定的触发事件事件发生时,触发器将自动执行指定的 SQL 语句集合,称为触发器操作

启动触发器操作的触发事件可以是 INSERT 、DELETE 、UPDATE 或 SELECT 语句。MERGE 语句还可以是 UPDATE 、DELETE 或 INSERT 触发的触发事件。该事件必须指定定义触发器的表或视图。(表上的触发器的 SELECT 或 UPDATE 事件还可以指定一列或多列。)

如果您包含可选的 IF NOT EXISTS 关键字,当指定名称的触发器已经在当前数据库中的表或视图上定义,则数据库服务器不采用操作(而非向应用程序发送异常)。

您可以用两种不同方法使用 CREATE TRIGGER 语句:
  • 可以在当前数据库中的表上定义触发器。
  • 也可以在当前数据库中的视图上定义 INSTEAD OF 触发器。
作为触发事件的实例的任何 SQL 语句称为触发语句。当事件发生时,在表上定义的触发器和在视图上定义的事件在是否执行触发语句方面有所不同:
  • 对于表,触发事件和触发器操作都执行。
  • 对于视图,只有触发器操作执行,而触发事件不执行。

通过定义指定的 DML 操作(触发事件)使数据库服务器执行特定操作所依据的规则,CREATE TRIGGER 语句可以支持数据库中数据的完整性。以下各节描述了语法元素。

子句 作用
定义触发器事件和操作 定义触发器事件和操作 将触发器的操作与事件关联
触发器模式 触发器方式 启用或禁用此触发器
Insert 事件和 Delete 事件 INSERT 事件和 DELETE 事件 定义 Insert 事件和 Delete 事件
Update 事件 UPDATE 事件 定义 Update 事件
Select 事件 SELECT 事件 定义 Select 事件
Action 子句 Action 子句 定义触发器操作
用于 Delete 的 REFERENCING 子句 用于删除的 REFERENCING 子句 为已删除的值声明限定符
用于 Insert 的 REFERENCING 子句 用于插入的 REFERENCING 子句 为已插入的值声明限定符
用于 Update 的REFERENCING 子句 用于更新的 REFERENCING 子句 为新的和旧的值定义限定符
用于 Select 的REFERENCING 子句 用于选择的 REFERENCING 子句 为结果集值声明限定符
相关的表操作 相关的表操作 定义触发器的操作
触发器操作 触发操作 定义触发器的操作
视图上的 INSTEAD OF 触发器 视图上的 INSTEAD OF 触发器 定义视图上的触发器
INSTEAD OF 触发器的 Action 子句 INSTEAD OF 触发器的 Action 子句 视图上的触发操作
1 请参阅 所有者名称
2 请参阅 定义触发器事件和操作
3 请参阅 视图上的 INSTEAD OF 触发器