本篇内容介绍了“什么是触发器”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
一、触发器的概念
触发器是一种特殊类型的存储过程,它不同于我们前面介绍过的存储过程。触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名字而被直接调用。当对某一表进行诸如UPDATE、INSERT、DELETE这些操作时,SQL Server就会自动执行触发器所定义的SQL语句,从而确保对数据的处理必须符合由这些SQL 语句所定义的规则。
二、触发器的作用
触发器的主要作用就是其能够实现由主键和外键所不能保证的复杂的参照完整性和数据的一致性。除此之外,触发器还有其它许多不同的功能:
A.强化约束
触发器能够实现比CHECK 语句更为复杂的约束。
B.跟踪变化
触发器可以侦测数据库内的操作从而不允许数据库中未经许可的指定更新和变化。
C.级联运行
触发器可以侦测数据库内的操作,并自动地级联影响整个数据库的各项内容。例如:某个表上的触发器中包含有对另外一个表的数据操作(如删除,更新,插入),而该操作又导致该表上触发器被触发。
D.存储过程的调用
为了响应数据库更新,触发器可以调用一个或多个存储过程,甚至可以通过外部过程的调用而在DBMS本身之外进行操作。
由此可见,触发器可以解决高级形式的业务规则或复杂行为限制以及实现定制记录等一些方面的问题。例如,触发器能够找出某一表在数据修改前后状态发生的差异,并根据这种差异执行一定的处理。此外一个表的同一类型(INSERT、UPDATE、DELETE)的多个触发器能够对同一种数据操作采取多种不同的处理。
总体而言,触发器性能通常比较低。
三、触发器的种类
SQL Server 2000支持两种类型的触发器:AFTER触发器和INSTEAD OF触发器。
AFTER触发器要求只有执行某一操作(INSERT、UPDATE、DELETE)之后,触发器才被触发,且只能在表上定义。可以为针对表的同一操作定义多个触发器。
INSTEAD OF触发器表示并不执行其所定义的操作(INSERT、UPDATE、DELETE),而仅是执行触发器本身。既可在表上定义INSTEAD OF触发器,也可以在视图上定义INSTEAD OF触发器,但对同一操作只能定义一个INSTEAD OF触发器。
“什么是触发器”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。