数据库视频第九章 存储过程

第九章 存储过程

存储过程:是一组为了完成特定功能的sql语句集,经编译后存储在数据库中,用户可以通过指定存储过程的名字并给定参数,就可以随时调用并且执行它,而不必重新编译,因此通过定义一段程序存储在数据库中的方式,可加大数据库操作语句的执行效率。

存储过程种类
用户自定义存储过程
系统存储过程
扩展存储过程

使用存储过程的优点
1.存储过程与其他应用程序共享应用程序逻辑,因而确保了数据访问和修改的一致性。
2.存储过程允许模块程序设计,存储过程一旦创建,以后即可在程序中调用任意多次。这样可以改进应用程序的可维护性,并允许应用程序统一访问数据库
3.存储过程可以减少网络通信流量,用户可以通过发送一个单独的语句来实现一个复杂的操作,而不需要再网络上发送几百个T-sql代码,这样减少了在服务器与客户机之间传递的请求的数量.

创建存储过程

create procedure proc_student
as
select * from 学生信息1
execute proc_student

创建存储过程的时候有参数,执行存储过程的时候也必须要有参数

create procedure proc_student
@sex varchar(20)
as
select * from 学生信息1 where 性别='@sex'
execute proc_student @sex='女'

在创建存储过程中使用输出函数,output为输出函数

create proc p_score
@name varchar(10),
@score int output
as
	select @score=avg(a.分数)
	from 成绩信息 A,学生信息1 B
	where a.学生编号=b.学号 and b.姓名=@name

在存储过程中使用update,delete语句

create proc scoreforupdate
@id varchar(10),
@score int 
as
	update 成绩信息 set 分数=@score where 成绩编号=@id
exec scoreforupdate @id='6',@score='90'

删除存储过程
drop procedure procedure_name

drop proc p_score

设计存储过程的规则
1.可以引用在同一存储过程中创建的对象,只要引用时已经创建了该对象即可。
2.可以在存储过程中引用临时表,如果在存储过程内创建本地临时表,则该临时表仅为该存储过程而存在,退出该存储过程后,临时表将消失。
3.如果执行的存储过程将调用另一个存储过程,则被调用的存储过程可以访问由第一个存储过程创建的所有对象,包括临时表在内。
4.如果执行对远程microsoft sql server 2008实例进行更改的远程存储过程,则不能回滚这些更改。远程存储过程不参与事务处理。

系统存储过程
Exec sp_who sa 返回用户sa的一些信息
Exec sp_helpdb studentinfo 返回学生信息数据库的日志文件等信息
Exec sp_monitor 返回数据库的一些统计信息
Exec sp_helpdb 返回当前所有的数据库的信息

临时和全局存储过程
局部存储过程:#
全局存储过程:##
创建全局存储过程

create procedure #get_info
as
select a.分数,b.姓名
from 成绩信息 A,学生信息1 B
where a.学生编号=b.学号
order by 姓名

嵌套存储过程

create pro get_classinfo
as
select * from 班级信息
exec p_student '101'
exec get_classinfo
发布了45 篇原创文章 · 获赞 10 · 访问量 6216

猜你喜欢

转载自blog.csdn.net/wtt15100/article/details/99709489