- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
大型数据库实验6存储过程
一.实验内容
1)创建并执行不带参数的存储过程
①针对项目表创建名为“P1_存储过程”的存储过程,要求显示所有记录。
②执行“P1_存储过程” 存储过程进行数据浏览。
2)创建并执行带输入参数的存储过程
①部门人数应该等于员工表中对应部门实际员工数,由于有员工调入调出,可能存在不等的情况。编写存储过程“P2_存储过程”,检查指定部门人数的正确性,如果不正确,则进行修改。
②显示部门表和员工表数据;然后执行存储过程;再显示部门表和员工表数据,比较数据是否变化。
3)创建带OUTPUT输出参数的存储过程
①设计存储过程“P3_存储过程”,从员工表计算某部门人员平均工资。要求输入参数为部门号,输出参数是该部门的平均工资。
②编写主程序,调用存储过程,在主程序中显示指定部门的平均工资。
4)创建并执行带输入参数和返回状态的存储过程
①设计存储过程“P4_存储过程”,完成对员工表的元组插入工作。要求使用输入参数。插入操作成功返出状态值0,失败返出状态值-1。
②执行存储过程,如果返回状态值为0,输出“数据插入成功”,否则输出“数据插入失败”。
5)修改和删除存储过程
①修改“P1_存储过程”存储过程,要求指定项目编号作为输入参数,并增加WITH ENCRYPTION选项。
②查看修改后的“P1_存储过程”存储过程文本。
③执行“P1_存储过程”存储过程
④删除“P1_存储过程”存储过程。
二.测试数据与实验结果
1、创建并执行不带参数的存储过程
a、针对项目表创建名为“P1_存储过程”的存储过程,显示所有记录,代码如下:
create procedure P1_存储过程
as
select *
from 项目表
b、执行“P1_存储过程” 存储过程进行数据浏览,结果如下:
2、创建并执行带输入参数的存储过程
a、编写存储过程“P2_存储过程”,其中利用游标逐行检查部门人数是否和在员工表中的数据相符合,如果不符合,则利用游标进行定位修改,代码如下:
create procedure P2_存储过程
as
declare @部门号 char(6),@部门人数 int
declare @n int
declare 部门表_cursor cursor for
select 部门号,部门人数
from 部门表
for update of 部门人数
open 部门表_cursor
fetch next from 部门表_cursor into @部门号,@部门人数
while @@FETCH_STATUS=0
begin
select @部门号,@部门人数
select @n=COUNT(员工号)
from 员工表
where 所在部门号=@部门号
update 部门表
set 部门人数=@n
where current of 部门表_cursor
fetch next from 部门表_cursor into @部门号,@部门人数
end
close 部门表_cursor
deallocate 部门表_cursor
执行存储过程,代码如下:
exec P2_存储过程
b、显示部门表和员工表数据,然后执行存储过程,可以看出,在执行存储过程之前,“办公室”的人数和员工表中的人数是不相符的,在执行存储过程之后,部门人数成功更新,如下图所示:
图1 员工表中的数据
图2执行“P2_存储过程”之前的部门表数据
图3 执行“P2_存储过程”之后的部门表数据
3、创建带OUTPUT输出参数的存储过程
a、设计存储过程“P3_存储过程”,从员工表计算某部门人员平均工资,输入参数为部门号,输出参数是该部门的平均工资 ,创建的过程如下:
create procedure P3_存储过程(@部门号 char(10),@部门平均工资 float output)
as
select @部门平均工资=AVG(工资)
from 员工表
where 所在部门号=@部门号declare @部门平均工资 float
exec P3_存储过程 1011,@部门平均工资 output
select 部门平均工资=@部门平均工资create procedure P4_存储过程
(@员工号 char(4),@姓名 varchar(20),@性别 char(2),
@出生年月 varchar(60),@技术职称 char(10),@工资 int ,@所在部门号 char(6),@参加的项目总数 int)
as
begin transaction
insert into 员工表 values
(@员工号,@姓名,@性别,cast(@出生年月 as datetime),@技术职称,@工资,@所在部门号,@参加的项目总数)
if @@error0
您可能关注的文档
最近下载
- 2025年秋季学期国家开放大学《思想道德与法治》专题测验1-7完整答案.docx VIP
- 完整指令01_kuka机器人krc4_electrical_diagram.pdf VIP
- 机电安装工程创优策划与实施.docx
- 浙江国企招聘-2026杭州电力设备制造有限公司招聘70人模拟试卷(浓缩300题)推荐.docx VIP
- 2022年学生卷南京南外仙林学校小学英语四年级上册期中知识点总结培优专题 .pdf VIP
- 广东省深圳市深圳高级中学(集团)2024--2025学年九年级上学期期中测试化学试题(含答案).pdf VIP
- 系统部署报告.docx VIP
- 浙江国企招聘-2026杭州电力设备制造有限公司招聘70人模拟试卷(浓缩300题)及答案1套.docx VIP
- 儿童少先队大队委员竞选PPT模板.pptx VIP
- JTG D40-2011 公路水泥混凝土路面设计规范.docx VIP
原创力文档


文档评论(0)