数据库学习之存储过程——触发器
2012-08-07 11:06
295 查看
存储过程定义:
将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来,只有在创造时进行编译,以后每次执行时都不需再重新编译。
触发器定义:
触发器是一种特殊的存储过程,但它不能被显示的调用,而是在往表中插入记录,更新记录或者删除记录时被自动的激活;触发器可以用来实现对表实施复杂的完整性约束。
特别地:系统为触发器准备了两个专用表:Inserted表和Deleted表。
Inserted表:存放执行delete或update语句而要从表中删除的所有行。
Delete表:存放执行Insert或update语句而要想表中插入的所有行。
触发器的种类
1.Instead of : 用于替代引起触发器执行的T-SQL语句。可用于表,视图。
2.After :在一个Insert,Update或delete语句之后执行,进行约束检查等动作都在after触发器被激活之前发生。只能用于表
注:一个表或视图的每一个修改动作都可以有一个instead of触发器,一个表的每个修改动作都可以有多个after触发器
触发器的创建
使用T-SQL语句
触发器的删除
基本语句
查看数据库中已有的触发器
基本语句
查看单个触发器
基本语句
修改触发器
基本语句
当然对触发器的这些基本操作还可以通过企业管理器来操作。大家可以针对不同版本的SQL Sever来进行学习。
触发器的优点
1.自动执行
2.级联更新
3.强化约束
4.跟踪变化
5.强制业务逻辑
触发器有这么多优点,是不是就可以一味的去使用它呢?越多越好吗?其实不是这样的,触发器功能强大,轻松可靠的实现许多复杂的功能,但是仍要慎用。原因是这样的,如果我们滥用触发器会造成数据库及应用程序的维护困难。
触发器不是一个简单的存储过程,它可以通过数据库中的相关表实现级联更改,不过,通过级联引用完整性约束可以更有效的执行这些更改。同时触发器可以强制比用check约束更为复杂的约束。
至于触发器和约束的比较下篇博客会写到......
将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来,只有在创造时进行编译,以后每次执行时都不需再重新编译。
触发器定义:
触发器是一种特殊的存储过程,但它不能被显示的调用,而是在往表中插入记录,更新记录或者删除记录时被自动的激活;触发器可以用来实现对表实施复杂的完整性约束。
特别地:系统为触发器准备了两个专用表:Inserted表和Deleted表。
Inserted表:存放执行delete或update语句而要从表中删除的所有行。
Delete表:存放执行Insert或update语句而要想表中插入的所有行。
触发器的种类
1.Instead of : 用于替代引起触发器执行的T-SQL语句。可用于表,视图。
2.After :在一个Insert,Update或delete语句之后执行,进行约束检查等动作都在after触发器被激活之前发生。只能用于表
注:一个表或视图的每一个修改动作都可以有一个instead of触发器,一个表的每个修改动作都可以有多个after触发器
触发器的创建
使用T-SQL语句
creat trigger trigger_name on{table_name|view_name} {for|after|instead of} [insert,update,delete] as aql_statement
触发器的删除
基本语句
drop trigger trigger_name
查看数据库中已有的触发器
基本语句
use jxcSoftware go select*from sysobjects where xtype='TR'
查看单个触发器
基本语句
exec sp_helptext'触发器名'
修改触发器
基本语句
alter trigger trigger_name on{table_name|view_name} {for|after|instead of} [insert,update,delete] as aql_statement
当然对触发器的这些基本操作还可以通过企业管理器来操作。大家可以针对不同版本的SQL Sever来进行学习。
触发器的优点
1.自动执行
2.级联更新
3.强化约束
4.跟踪变化
5.强制业务逻辑
触发器有这么多优点,是不是就可以一味的去使用它呢?越多越好吗?其实不是这样的,触发器功能强大,轻松可靠的实现许多复杂的功能,但是仍要慎用。原因是这样的,如果我们滥用触发器会造成数据库及应用程序的维护困难。
触发器不是一个简单的存储过程,它可以通过数据库中的相关表实现级联更改,不过,通过级联引用完整性约束可以更有效的执行这些更改。同时触发器可以强制比用check约束更为复杂的约束。
至于触发器和约束的比较下篇博客会写到......
相关文章推荐
- Java学习笔记之数据库(触发器、事物、索引、投影和除、视图、存储过程和函数 )含各种链)___ 一直补充
- MySQL存储过程和触发器的实现--数据库学习笔记
- MySQL之存储过程.触发器学习整理
- 数据库存储过程学习笔记
- 数据库学习之存储过程及函数。
- Oracle 数据库存储过程学习笔记
- 从已有数据库生成脚本来获得生成数据表、视图、函数、存储过程以及触发器的SQL语句
- 数据库基础知识点二:PLSQL、游标、程序包、存储过程、触发器,序列,视图,索引,数据字典
- 数据库到底用不用外键、触发器、索引、视图、存储过程
- 如何利用存储过程和触发器来管理数据库 (1)
- 存储过程与触发器学习(1)
- sybase ASE 导出数据库的所有存储过程、触发器到文件
- MySQL存储过程中的基本函数和触发器的相关学习教程
- SQL Server查询数据库所有存储过程、触发器、索引信息SQL分享
- 如何利用存储过程和触发器来管理数据库 (2)
- SQL-SERVER数据库中的游标、存储过程和触发器 关键词 SQL-SERVER、游标、存储过程、触发器、高效处理数据
- SQL Server查询数据库所有存储过程、触发器、索引信息SQL分享
- 存储过程学习-批量插入10000条数据进数据库
- 数据库oracle--存储过程的学习
- 数据库的几个问题存储过程触发器函数创建以及sql优化