SQL高级--储存过程和触发器
2018-01-10 15:06
369 查看
储存过程
什么是存储过程
存储过程:是一组SQL命令集合,经过预编译存放在系统中在日常的数据库操作中,会有大量的T-SQL批处理、游标,如果每次都要去重写或者打开脚本来执行会相当麻烦,数据库可以将我们编写的T-SQL批处理保存在一个处理过程中,就像java程序里的方法,可以重复的被调用,这个被保存的处理过程在数据库中叫存储过程,和程序中的方法一样,同样可以根据需要设置参数、和返回值。
存储过程分类
存储过程可以分为“系统存储过程”和“用户存储过程”系统存储过程:一般以SP_开头,用户不可以编辑修改,只能调用
用户存储过程:用户编写的处理数据的存储过程
存储过程的创建和使用
下面是存储过程的基本结构无参数
create procedure proc1 --创建一个存储过程 as begin --在存储过程中处理SQL select * from bank end
有参数
create procedure proc2 @mobile varchar(50),@sendMsg varchar(50) as begin print @mobile end
输出参数
create procedure proc2 @mobile varchar(50) output,@sendMsg varchar(50) output as begin print @mobile end
注意要点:
1.存储过程的关键子是procedure,创建时可以简写成proc,
2.存储过程的参数是在as关键字之前,as之后的是局部变量,2种变量在存储过程中都可以使用,但是命名时不可以冲突
3.存储过程参数可以是输出参数,可以返回过程处理的值
4.支持T-SQL,游标、和存储过程的嵌套
什么是触发器?
触发器是一种特殊的存储过程,它不是由用户主动发起调用的,而是当发生某一事件而触发,由系统自动调用,比如当用户在数据库中新增一条商品采购记录,我们希望同时在库存中做登记,而库存登记不是人工去录入,是在发生商品采购这一事件时发生,由系统自动完成录入,这个工作就可以交给一个特殊的存储过程来完成,这个存储过程就是触发器。触发器的工作机制
触发器是建在表上的,当这个表发生新增、修改、删除操作时,如果这个表上有触发器,就会被自动调用,在这个事件的过程中,系统会产生一个临时表, 这个临时表只有一行记录当执行新增操作时,临时表的名字叫inserted
当执行删除操作时,临时表的名字叫deleted
当执行修改操作时,会同时产生2个临时表,一个是inserted,存放的是新的数据,一个是deleted,存的是旧的数据
当需要触发器连带操作登记库存时就可以从inserted表或者deleted表中获得变量,更新到库存表中数据
触发器的创建
触发器的基本语法规则create trigger 触发器名称 --触发器名称 on 表名 --建在那个表上 for insert|update|delete --是插入事件处理还是修改事件处理还是删除事件处理 as --以下是触发器基本格式 begin end
触发器的事件可以是单独的,也可以3个同时都在一个触发器中,通常情况下还是写成单独的
相关文章推荐
- SQL高级注入使用之储存过程
- SQL高级注入使用之储存过程
- SQL高级注入使用之储存过程 2
- SQL高级注入使用之储存过程
- SQL高级注入使用之储存过程
- SQL必知必会(五) 使用视图、使用储存过程、管理事务处理、使用游标、高级SQL特性
- SQL高级注入使用之储存过程
- SQL高级注入使用之储存过程
- SQL高级 第六章 7 储存过程
- SQL高级注入使用之储存过程
- 23PL_SQL过程之建立触发器
- SQL存储过程与触发器
- SQL获取所有数据库名、表名、储存过程以及参数列表
- SQL存储过程和触发器
- SQL的链接、视图、事物、储存过程…
- 关于SQL储存过程中输出多行数据
- SQL7.0储存过程调试
- SQL获取所有数据库名、表名、储存过程以及参数列表
- sql储存过程实现分页
- SQL 数据库查询出来的数据集调用储存过程删除右边多余的0