存储过程与触发器
来源:互联网 发布:java简单聊天代码 编辑:程序博客网 时间:2024/05/17 09:30
先来看两段sql语句。 前一段时间看牛腩老师的新闻发布系统,看到存储过程和触发器的时候,之隐隐约约觉得这是两个功能强大的类似function的东西,却又具体说不上他们有何区别,有何不同。上代码:
查微软msdn:
-
触发器
触发器是一种特殊类型的存储过程,它在您使用一种或多种数据修改操作(UPDATE、INSERT 或 DELETE)来修改指定表中的数据时运行。
触发器可以查询其他表,而且可以包含复杂的 SQL 语句。它们主要用于强制服从复杂的业务规则或要求。例如,您可以根据客户当前的帐户状态,控制是否允许插入新订单。
触发器也可用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所定义的关系。然而,强制引用完整性的最好方法是在相关表中定义主键和外键约束。如果使用表设计器,则可以在表之间创建关系以自动创建外键约束。
优点:
触发器是自动的。它们在对表的数据作了任何修改(比如手工输入或者应用程序采取的操作)之后立即被激活。
触发器可以通过数据库中的相关表进行级联更改。
触发器可以强制限制,这些限制比用约束所定义的更复杂,触发器可以引用其他表中的列。
=
存储过程
存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。存储过程存储在数据库内,可通过来自应用程序的调用来执行,并且允许用户声明的变量、条件执行以及其他强大的编程功能。 存储过程可以包含程序流、逻辑关系和对数据库的查询。它们可以接受参数、输出参数、返回单个或多个结果集以及返回值。 优点: 可以在单个存储过程中执行一系列 SQL 语句。 可以从您的存储过程内引用其他存储过程,这可以简化一系列复杂语句。 存储过程于创建时在服务器上进行编译,所以执行起来比单个 SQL 语句快。 = 比较:
触发器之于存储过程,就像事件之于方法。方法包括事件、属性和方法,事件、属性是特殊的方法。触发器是特殊的存储过程,它不由用户直接调用,而是与数据库表紧密相连,当用户修改表中的数据时,它自动执行。
存储过程是一组为了完成特定功能Transact-SQL 语句,我们可以将一个复杂的操作过程放置其中,它们只需编译一次,以后即可多次执行。因为 Transact-SQL 语句不需要重新编译,所以执行存储过程可以提高性能。存储过程需要调用执行。
- 存储过程与触发器
- 存储过程与触发器
- 触发器与存储过程
- 存储过程与触发器
- 存储过程与触发器
- 触发器与存储过程
- 存储过程与触发器
- 存储过程与触发器
- 存储过程与触发器
- 触发器简介&触发器与存储过程区别
- asa 存储过程与触发器
- Oracle触发器与存储过程
- SQL存储过程与触发器
- 存储过程与触发器作用
- 视图、存储过程与触发器
- mariaDB存储过程与触发器
- 数据库存储过程与触发器
- mysql触发器与存储过程
- apache重装时的相关问题
- Java学习笔记7:改变赋值,输出乘法口诀
- mplayer slave 模式文档翻译
- 正则表达式分析
- 文档过滤(集体智慧编程第6章)
- 存储过程与触发器
- Qt/E 的交叉编译
- Poedit国际化处理工具
- 用union来判断处理器的大小端
- 【推荐】jQuery应用程序架构设计工具(PPT)
- poj 2165 Gunman
- 无法找到AdbWinApi.dll问题解决
- 基于AFD驱动的进程流量控制
- C#的文件共享读写方式