1 认识触发器
触发器是由一系列的T-SQL编写完成的,和存储过程类似。也可以说它是一种特殊的存储过程。在数据库中,触发器有着和“约束条件”类似的功能,利用它可以解决常规“约束条件”解决不了的问题。
1.1 什么是触发器
触发器由Transact-SQL编写并存储在SQL Server服务器中,但触发器本身的调用和存储过程调用却是不一样的。存储过程由用户、应用程序、触发器或其他过程调用。触发器只能由数据库的特定事件来触发,所谓的特定事件主要包括如下几种类型的事件。
(1)用户在指定的表或视图做DML操作,主要包括如下几种:
● INSERT操作,在特定的表或视图中增加数据。
● UPDATE操作,对特定的表或视图修改数据。
● DELETE操作,删除特定表或视图的数据。
(2)用户做DDL操作,主要包括如下几种:
● CREATE操作,创建对象。
● ALTER操作,修改对象。
● DROP操作,删除对象。
(3)用户进行LOGON操作。
● 与SQL Server实例建立连接。
当创建触发器的类型同指定的事件相匹配时,触发器将会被激发,其他情况下触发器不会被激发,这一点和存储过程不一样。
1.2 触发器的作用
触发器的运用虽然很耗费数据库系统的性能,但它所起的作用却比较特殊。在SQL Server中触发器可以实现数据的完整性,并保证复杂业务规则的强制执行。这主要表现在以下几个方面:
● 利用触发器可以执行相对复杂的业务操作。增加、删除、修改数据是对表最基本的操作方式。这种操作方式只能完成固定的数据变动,而使用触发器则在完成数据变动的基础上做额外的操作,以达到完成特殊业务的目的。
● 可以防止无意义的数据操作。利用触发器可以对符合某些条件的数据加以保护,使其不能被随意改动。
● 用于级联操作数据。当一个表中的数据有变动时,可以利用触发器修改这些变动数据在其他表中的关联数据(正常情况下可以利用外键进行限制)。
● 保证数据的同步复制。
● 利用触发器可以跟踪对数据库的操作。在指定的表或视图中设置触发器,当记录被改变时,利用触发器把数据变动日志记录下来。
● 允许或限制修改某些表,利用触发器可以限制表的变动。
1.3 触发器分类
在SQL Server 2008中可以使用的触发器可以分为4大类,分别是DML触发器、DDL触发器、CLR触发器及登录触发器。其中最常用的是DML触发器。
(1)DML触发器。这种类型的触发器可以称为数据操纵语言(DML)触发器。它作用在表或视图上,在对表或视图进行DML操作时会激发该类型的触发器,该类型触发器包括:
● AFTER触发器,此类型触发器会在执行INSERT、UPDATE及DELETE操作后被激发并执行。它被激发的时机是在表或视图中的数据修改之后。
● INSTEAD OF触发器
SQL Server(八)-触发器
最新推荐文章于 2025-02-11 20:27:37 发布