加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQLServer数据库——触发器

发布时间:2020-12-12 15:28:46 所属栏目:MsSql教程 来源:网络整理
导读:今天写有关数据库的程序,需要用到触发器,以前也写过但是却没有深究。今天准备整理一下。 ????? 首先看触发器的定义。顾名思义触发就是当我们执行一种操作时引起其它操作的行为。我们通常所说的触发器是指DML触发器。DML 触发器嘛就是是当数据库服务器中发

适用范围

表和视图

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

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

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

级联引用

无任何限制条件

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

执行

晚于:

  • 约束处理
  • 声明性引用操作
  • 创建插入的删除的
  • 触发操作

早于:

  • 约束处理

替代:

  • 触发操作

晚于:

  • 创建插入的删除的

执行顺序

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

不适用

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

允许

允许

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

不允许

允许

看下面的表:

?

适用范围

表和视图

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

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

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

级联引用

无任何限制条件

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

执行

晚于:

  • 约束处理
  • 声明性引用操作
  • 创建插入的删除的
  • 触发操作

早于:

  • 约束处理

替代:

  • 触发操作

晚于:

  • 创建插入的删除的

执行顺序

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

不适用

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

允许

允许

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

不允许

允许

适用范围

表和视图

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

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

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

级联引用

无任何限制条件

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

执行

晚于:

  • 约束处理
  • 声明性引用操作
  • 创建插入的删除的
  • 触发操作

早于:

  • 约束处理

替代:

  • 触发操作

晚于:

  • 创建插入的删除的

执行顺序

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

不适用

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

允许

允许

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

不允许

允许

今天先说这么多。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

今天写有关数据库的程序,需要用到触发器,以前也写过但是却没有深究。今天准备整理一下。

????? 首先看触发器的定义。顾名思义触发就是当我们执行一种操作时引起其它操作的行为。我们通常所说的触发器是指DML触发器。DML 触发器嘛就是是当数据库服务器中发生数据操作语言 (DML) 事件时要执行的操作。DML 事件包括对表或视图发出的 UPDATE、INSERT 或 DELETE 语句。DML 触发器用于在数据被修改时强制执行业务规则,以及扩展 Microsoft SQL Server 约束、默认值和规则的完整性检查逻辑。

????? 像常规触发器一样,DDL 触发器将激发存储过程以响应事件。但与 DML 触发器不同的是,它们不会为响应针对表或视图的 UPDATE、INSERT 或 DELETE 语句而激发。相反,它们将为了响应各种数据定义语言 (DDL) 事件而激发。这些事件主要与以关键字 CREATE、ALTER 和 DROP 开头的 Transact-SQL 语句对应。执行 DDL 式操作的系统存储过程也可以激发 DDL 触发器。

????? DML触发器的类型。

  • after触发器:在执行了 INSERT、UPDATE 或 DELETE 语句操作之后执行 AFTER 触发器。指定 AFTER 与指定 FOR 相同,它是 Microsoft SQL Server 早期版本中唯一可用的选项。AFTER 触发器只能在表上指定。
  • instead of触发器:执行 INSTEAD OF 触发器代替通常的触发动作。还可为带有一个或多个基表的视图定义 INSTEAD OF 触发器,而这些触发器能够扩展视图可支持的更新类型。
  • CLR 触发器可以是 AFTER 触发器或 INSTEAD OF 触发器。CLR 触发器还可以是 DDL 触发器。CLR 触发器将执行在托管代码(在 .NET Framework 中创建并在 SQL Server 中上载的程序集的成员)中编写的方法,而不用执行 Transact-SQL 存储过程。

函数 AFTER 触发器 INSTEAD OF 触发器
函数 AFTER 触发器 INSTEAD OF 触发器
函数 AFTER 触发器 INSTEAD OF 触发器
    推荐文章
      热点阅读