触发器的类型

触发器定义一组操作,在响应对指定表的插入、更新或删除操作时将执行这些操作。 执行这样的 SQL 操作时,触发器被认为是已激活的。 触发器是可选的,并且可使用 CREATE TRIGGER 语句定义。

可将触发器与引用约束和检查约束配合使用,以强制执行数据完整性规则。 还可使用触发器来导致更新其他表、自动生成或变换插入或更新的行的值或者调用函数以执行如发出警报之类的任务。

支持下列类型的触发器:
前触发器
在更新或插入操作前运行。 在实际修改数据库之前,可以修改要更新或插入的值。 可以将在更新或插入操作前运行的触发器用于下列几种用途:
  • 在数据库中实际更新或插入值之前检查或修改这些值。 如果必须将用户看到的数据格式变换为某种内部数据库格式,那么这样做很有用。
  • 运行用户定义函数中编写的其他非数据库操作。
BEFORE DELETE 触发器
在删除操作前运行。 检查值(必要时产生错误)
后触发器
在更新、插入或删除操作后运行。 可以将在更新或插入操作后运行的触发器用于下列几种用途:
  • 更新其他表中的数据。 此功能对于保持数据之间的关系或保留审计跟踪信息很有用。
  • 针对表或其他表中的其他数据检查。 当引用完整性约束不适合或者表检查约束限制仅对当前表进行检查时,此功能对于确保数据完整性很有用。
  • 运行用户定义函数中编写的非数据库操作。 在发出警报或更新数据库外的信息时,此功能很有用。
INSTEAD OF 触发器
描述如何对视图执行插入、更新和删除操作,这些视图太复杂,以致无法在本机支持这些操作。 这种触发器允许应用程序将视图用作所有 SQL 操作(插入、删除、更新和选择)的唯一界面。