代码驿站移动版
频道导航
HTML/Xhtml
CSS
JavaScript
HTML5
PHP教程
ASP.NET
正则表达式
AJAX
ThinkPHP
Yii
MySQL
MariaDB
Oracle
MongoDB
Redis
DedeCMS
PHPCMS
帝国CMS
WordPress
Discuz
其它CMS
Zend Studio
Sublime
Notepad
Dreamweaver
Windows
Linux
Nginx
Apache
IIS
CentOS
Ubuntu
Debian
网站优化
工具资源
PHP源码
ASP.NET源码
其它源码
图标素材
按钮素材
字体素材
DedeCMS模板
帝国CMS模板
PHPCMS模板
WordPress模板
Discuz!模板
单页模板
开发软件下载
服务器软件下载
广告投放
联系我们
版权申明
软件编程
网页前端
移动开发
数据库
服务器
脚本语言
PHP代码
JAVA代码
Python代码
Android代码
当前位置:
主页
> >
特殊的存储过程-触发器概述
时间:2021-04-14 09:04:23 | 栏目: | 点击:次
本节将介绍一种特殊的存储过程,即触发器。
一、触发器的概念
触发器是一种特殊类型的存储过程,它不同于我们前面介绍过的存储过程。触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名字而被直接调用。当对某一表进行诸如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触发器。
注:在本实验中不讲INSTEAD OF触发器
您可能感兴趣的文章:
易语言打开文件件网页的方法
X86汇编调试环境搭建的过程
使用navicat导入sql文件的方法步骤
Discuz!论坛install.php书写错误漏洞
路由器安全有关的目录
相关文章
05-15
TCP三次握手及原理
05-15
Flex中实现对一个text渲染不同的字体颜色示例
05-15
idea整合docker快速部署springboot应用的详细过程
05-15
总结一些你可能不知道的ip地址
05-14
三款Docker图形化工具优缺点对比
JQuery
VUE
AngularJS
MSSql
MySQL
MongoDB
Redis
Linux
Tomcat
Nginx
网站首页
广告投放
联系我们
版权申明
联系站长