触发器 (数据库)


触发器 (数据库) (正體)

跳过字词转换说明

触发程序 (trigger) 是一种在数据库中,在对数据库有异动的动作时,先行拦截并处理的一种数据库对象,它大部份会设在数据表中,作为强制运行特定动作的程序,因此又称为 DML (数据操作语言) Trigger。

触发程序的好处有:

  • 可在写入数据表前,强制检验或转换数据。
  • 触发程序发生错误时,异动的结果会被撤销。
  • 部份数据库管理系统可以针对数据定义语言使用触发程序,称为 DDL Trigger。
  • 可依照特定的情况,替换异动的指令 (INSTEAD OF)。

种类

DML 触发程序可以分为数种:

  • BEFORE: 在异动发生前运行。
  • AFTER: 在异动发生后运行。
  • INSTEAD OF: 替换异动的指令。

DDL 触发程序范围就相当大,对数据库对象的异动大多都可捕捉,视数据库管理系统而定。

语法

SQL Server 的 DML 触发程序可利用下列语法建立[1]

CREATE TRIGGER reminder2
ON Sales.Customer
AFTER INSERT, UPDATE, DELETE 
AS
   EXEC msdb.dbo.sp_send_dbmail
        @profile_name = 'AdventureWorks Administrator',
        @recipients = 'danw@Adventure-Works.com',
        @body = 'Don''t forget to print a report for the sales force.',
        @subject = 'Reminder';


参考资料

数据库管理系统(DBMS)查看  讨论  编辑  历史 )

概念
数据库 · 数据库模型 · 数据库存储结构 · 关系 (数据库) · 关系模型 · 分布式数据库 · ACID · Null值
关系数据库 · 关系代数 · 关系演算 · 元组关系演算 · 域关系演算 · 数据库规范化 · 引用完整性 · 关系数据库管理系统 
主键 · 外键 · 代理键 · 超键 · 候选键 

数据库组件
触发器 · 视图 · 数据库表 · 指标 (数据库) · 事务日志 · 数据库事务 · 数据库索引 
存储程序 · 数据库分割

SQL
分类: 数据查询语言DQL · 数据定义语言DDL · 数据操纵语言DML · 数据控制语言DCL
指令:SELECT · INSERT · UPDATE · MERGE · DELETE · JOIN · UNION · CREATE · DROP · Begin work · COMMIT · ROLLBACK · TRUNCATE · ALTER
安全: SQL注入攻击 · 参数化查询

数据库管理系统的实施

实施类型
关系数据库 · 文件型数据库 · Deductive · 维度化数据库 · 层次结构式 · 对象数据库 · 对象关系数据库 · Temporal · XML数据库

数据库产品
对象型 (对比) · 关系型 (对比)

数据库成分
查询语言 · 查询优化器 · 查询计划 · ODBC · JDBC · OLE DB







stock | retire | vm
Why are we here?
All text is available under the terms of the GNU Free Documentation License
This page is cache of Wikipedia. History