触发器和存储
来源:互联网 发布:震动报警器单片机程序 编辑:程序博客网 时间:2024/06/13 21:16
触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。
触发器原理:
触发器与存储过程非常相似,触发器也是SQL语句集,两者唯一的区别是触发器不能用EXECUTE语句调用,而是在用户执行Transact-SQL语句时自动触发(激活)执行。触发器是在一个修改了指定表中的数据时执行的存储过程。通常通过创建触发器来强制实现不同表中的逻辑相关数据的引用完整性和一致性。由于用户不能绕过触发器,所以可以用它来强制实施复杂的业务规则,以确保数据的完整性。触发器不同于存储过程,触发器主要是通过事件执行触发而被执行的,而存储过程可以通过存储过程名称名字而直接调用。当对某一表进行诸如UPDATE、INSERT、DELETE这些操作时,SQLSERVER就会自动执行触发器所定义的SQL语句,从而确保对数据的处理必须符合这些SQL语句所定义的规则。
触发器的作用:
触发器的主要作用是其能够实现由主键和外键所不能保证的复杂的参照完整性和数据的一致性。它能够对数据库中的相关表进行级联修改,强制比CHECK约束更复杂的数据完整性,并自定义操作消息,维护非规范化数据以及比较数据修改前后的状态。与CHECK约束不同,触发器可以引用其它表中的列。在下列情况下使用触发器实现复杂的引用完整性;强制数据间的完整性。创建多行触发器,当插入,更新、删除多行数据时,必须编写一个处理多行数据的触发器。执行级联更新或级联删除这样的动作。级联修改数据库中所有相关表。撤销或者回滚违反引用完整性的操作,防止非法修改数据。
存储过程(Stored Procedure)
是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。触发器与存储过程的区别:
触发器与存储过程的主要区别在于触发器的运行方式。存储过程必须有用户、应用程序或者触发器来显示的调用并执行,而触发器是当特定时间出现的时候,自动执行或者激活的,与连接用数据库中的用户、或者应用程序无关。当一行被插入、更新或者删除时触发器才执行,同时还取决于触发器是怎样创建的,当UPDATE发生时使用一个更新触发器,当INSERT发生时使用一个插入触发器,当DELETE发生时使用一个删除触发器。
- 触发器和存储过程
- 触发器和存储过程
- 触发器和存储过程
- 触发器和存储过程
- 存储过程和触发器
- 存储过程和触发器
- 存储过程和触发器
- 触发器和存储过程
- 存储过程和触发器
- 存储过程和触发器
- 存储过程和触发器
- 存储过程和触发器
- 【触发器和存储过程】
- 存储过程和触发器
- 存储过程和触发器
- 存储过程和触发器
- 触发器和存储过程
- 触发器和存储过程
- HDU
- BeagleBone Black 3
- Android图片之Glide
- javascript的正则如何传递一个变量
- Android 实现自定义自带删除按钮的EditText(带有搜索接口)
- 触发器和存储
- 当前记录被另一用户锁定,解除锁定
- 文件处理命令tail
- JavaWeb--基础进阶《二》:Java基础-变量与数据类型
- 华为麦芒 6 上手评测:能否继续麦芒 5 的辉煌?
- 翻译 | 关键CSS和Webpack: 减少阻塞渲染的CSS的自动化解决方案
- QNX配置网卡
- 汉诺塔问题分析
- Windows环境下的C++获取当前程序的exe文件路径