DML 触发器计划指南

简介: 有两个用于设计 DML 触发器的选项: 执行 INSTEAD OF 触发器代替通常的触发操作。还可以对带有一个或多个基表的视图定义 INSTEAD OF 触发器,这些触发器可以扩展视图可支持的更新类型。

有两个用于设计 DML 触发器的选项:

  • 执行 INSTEAD OF 触发器代替通常的触发操作。还可以对带有一个或多个基表的视图定义 INSTEAD OF 触发器,这些触发器可以扩展视图可支持的更新类型。

  • 在执行 INSERT、UPDATE 或 DELETE 语句操作之后执行 AFTER 触发器。指定 AFTER 与指定 FOR 相同。AFTER 触发器只能在表上指定。

下表对 AFTER 触发器和 INSTEAD OF 触发器的功能进行了比较。

函数 AFTER 触发器 INSTEAD OF 触发器

适用范围

表和视图

每个表或视图包含触发器的数量

每个触发操作(UPDATE、DELETE 和 INSERT)包含多个触发器

每个触发操作(UPDATE、DELETE 和 INSERT)包含一个触发器

级联引用

无任何限制条件

不允许在作为级联引用完整性约束目标的表上使用 INSTEAD OF UPDATE 和 DELETE 触发器。

执行

晚于:

  • 约束处理

  • 声明性引用操作

  • 创建插入的删除的

  • 触发操作

早于:

  • 约束处理

替代:

  • 触发操作

晚于:

  • 创建插入的删除的

执行顺序

可指定第一个和最后一个执行

不适用

插入的删除的表中的 varchar(max)nvarchar(max)varbinary(max) 列引用。

允许

允许

插入的删除的表中的 textntextimage 列引用。

不允许

允许

目录
相关文章
|
SQL Go
SQL Server如何用触发器捕获DML操作的会话信息
需求背景        上周遇到了这样一个需求,维护人员发现一个表的数据经常被修改,由于历史原因;文档缺少;以及维护人员的经常变更,导致他们对系统也业务也不完全熟悉,他们也不完全清楚哪些系统和应用程序会对这个表的数据进行操作。
1029 0
|
SQL Go 应用服务中间件
SQL Server如何用触发器捕获DML操作的会话信息
原文:SQL Server如何用触发器捕获DML操作的会话信息 需求背景        上周遇到了这样一个需求,维护人员发现一个表的数据经常被修改,由于历史原因;文档缺少;以及维护人员的经常变更,导致他们对系统也业务也不完全熟悉,他们也不完全清楚哪些系统和应用程序会对这个表的数据进行操作。
883 0
|
SQL 数据库 数据安全/隐私保护
|
SQL Oracle 关系型数据库
PL/SQL12.1 ——DML 触发器
 http://blog.csdn.net/robinson_0612/article/details/6098258  何谓触发器?简言之,是一段命名的PL/SQL代码块,只不过该代码块在特定的条件下被触发并且执行。
1148 0
|
SQL Perl
PL/SQL12.2 ——DML 触发器
http://blog.csdn.net/robinson_0612/article/details/6098263  INSTEAD OF 触发器常用于管理编写不可更新的视图,INSTEAD-OF触发器必须是行级的。
761 0
|
SQL 数据库连接
DML 触发器 Set选项
SET 语句选项 当 ODBC 应用程序连接到 SQL Server 时,服务器将自动为会话设置下列选项: SET QUOTED_IDENTIFIER ON SET TEXTSIZE 2147483647 SET ANSI_DEFAULTS ON SET CURSOR_CLOSE_ON_COMMIT OFF SET IMPLICIT_TRANSACTIONS OFF 这些设置会增加 ODBC 应用程序的可移植性。
726 0
|
SQL Oracle 关系型数据库
PL/SQL --> DML 触发器
--======================= -- PL/SQL --> DML 触发器 --=======================         何谓触发器?简言之,是一段命名的PL/SQL代码块,只不过该代码块在特定的条件下被触发并且执行。
1078 0
|
2月前
|
关系型数据库 MySQL
Mysql基础第二十八天,使用触发器
Mysql基础第二十八天,使用触发器
28 0
Mysql基础第二十八天,使用触发器