数据库实验10存储过程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验10存储过程
一、实验目的
1. 掌握用户存储过程的创建操作。
2. 掌握用户存储过程执行操作。
3. 掌握用户存储过程的删除操作。
二、相关知识
存储过程:SQL Server 提供的一种将一些固定操作集中起来,由SQL Server 数据库服务器来完成的功能。
存储过程是机构编译和优化后存储在数据库服务器中的SQL语句,只需要调试即可使用。存储过程的优点有:
1)让服务器端能够快速执行某些SQL语句。
2)减少了服务器和客户端之间的数据流的。
3)方便实施企业规则。
4)封装后的过程对数据库保护具有一定安全性。
三、实验内容
1. 创建带输入参数的存储过程。
2. 执行所创建的存储过程。
3.删除所有新创建的存储过程。
四、实验步骤
(一)
1. 创建带输入参数的存储过程。
1)启动SQL Server Management Studio,选择要操作的数据库,如“学生选课”数据库,然后打开新建查询窗口。
2)在查询命令窗口中输入创建存储过程的CREATE PROCEDURE 语句,如图14.11.1所示:
这里,我们创建一个带输入参数的存储过程proc_xsqk1,其中的输入参数用于接收课程号,默认值为“001”,然后在“选课表”中查询该课程成绩不及格的学生学号,接着在“学生表”中查找这些学生的基本信息,包括学号、姓名、性别和联系电话信息,最后输出。
图14.11.1在查询窗口中创建存储过程
3)点击快捷工具栏上的快捷铵钮“√”,对输入的CREATE PROCEDURE 语句进行语法分析。
如果有语法错误,则进行修改,直到没有语法错误为止。
4)点击快捷工具拦上的快捷按钮“!”,执行CREATE PROCEDURE 语句。
5)查看生成的存储过程,如图14.11.2。
图14.11.2存储过程
2.执行所创建的存储过程
1)在查询命令窗口中输入以下EXECUTE 语句,执行存储过程proc_XSQK1。
EXECUTE proc_xsqk1 '001'
2)点击快捷工具拦上的快捷按钮“!”,执行存储过程。
3. 删除新建的存储过程
在查询命令的窗口中输入DROP PROCEDURE语句和所有新创建的存储过程名。
DROP PROCEDURE
Proc_xsqk1
点击快捷工具上的快捷按钮“!”,删除存储过程。
(二)增加内容:
1.看看下面什么意思?
--创建存储过程
create procedure upd_sphone
@newp varchar(20),@nam varchar(20),@oldp varchar(20)output
as
begin
select @oldp=sphone from s where sname = @nam;
if @oldp is not null
begin
print @oldp;
update s set sphone = @newp where sname = @nam;
end
else
print @nam +' is not exist!';
end
--下面是执行存储过程:
select*from s
begin
declare @temp char(20)
print @temp
execute upd_sphone '44444','张山', @temp
print'张山老号码为:'+@temp
end
2.完成一下程序:
(1).创建一张用户表user:账号account,姓名username,密码pwd,登录次数loginnum(整型)
(2).创建一个存储过程up_login,实现登录判断,如果成功登录次数加1,返回0,如果用户不存在,打印用户不存在,返回一个值1,如果密码不对,返回值2,打印密码不存在。
思路:
1)有3个参数:用户名、密码是输入参数,返回值是输出参数
2)先用输入的用户名去查询用户名,再判断查询出来的用户名是否存在(判断是否存在可以参考上面的例子)
3)如果不存在打印“用户不存在”设置返回值为1;
4)如果存在,那么用输入的用户名和密码去查用户名;再判断是否在
5)如果在,用update命令对loginnum加1,并设置返回值0,如果不存在那么设置返回值2,打印密码不存在。
五、实验要求
1. 用Transact-SQL 写出实验操作的语句。
2. 实验操作步骤和实验结果。
3. 实验中出现的问题和解决方法。
六、注意事项
1. 不能将CREATE PROCEDURE语句同其他SQL语句组合到单个批处理中。
2. 一个存储过程的最大尺寸为128MB。
七、思考题
1. 如何实现一个带嵌套的存储过程。
2. 使用存储过程有什么好处?