欢迎来到天天文库
浏览记录
ID:31511052
大小:935.00 KB
页数:21页
时间:2019-01-12
《数据库实验设计报告三》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、资料《数据库原理》实验报告实验五:触发器、存储过程和函数实验六:ODBC/JDBC数据库编程学号姓名班级日期2013302534杨添文100113032015.10.31实验五:触发器、存储过程和函数一、实验内容1.使用系统存储过程(sp_rename)将视图“V_SPJ”更名为“V_SPJ_三建”。(5分)(1)在原有数据库SPJ中,建立如下语句:execsp_rename'V_SPJ','V_SPJ三建'(2)结果为:2.针对SPJ数据库,创建并执行如下的存储过程:(共计35分)(1)创建一个带参数的存储过程—jsearch。该存储过程的作用是:当任意输入一个工程代号时,将返
2、回供应该工程零件的供应商的名称(SNAME)和零件的名称(PNAME)以及工程的名称(JNAME)。执行jsearch存储过程,查询“J1”对应的信息。(10分)(1)存储过程为:createprocedurejsearch(@searchingfor_jnonchar(20))asbeginselectJ.JNAME,S.SNAME,P.PNAMEfromS,P,J,SPJwhereSPJ.JNO=@searchingfor_jnoandSPJ.JNO=J.JNOandSPJ.SNO=S.SNOandSPJ.PNO=P.PNOEnduse[SPJ].资料go(2)执行存储过程如
3、下:declare@solutionintexec@solution=[dbo].[jsearch]@searchingfor_jno=N'J1'select'solution'=@solutiongo(3)结果:(1)使用S表,为其创建一个加密的存储过程—jmsearch。该存储过程的作用是:当执行该存储过程时,将返回北京供应商的所有信息。(10分)createprocedurejmsearchwithencryptionasbeginselect*fromSwhereCITY='北京'end(2)使用系统存储过程sp_helptext查看jsearch,jmsearch的文本
4、信息。(5分)(1)当输入为:execsp_helptext'jsearch'结果是:.资料(2)当输入为:execsp_helptext'jmsearch'结果是:(1)执行jmsearch存储过程,查看北京供应商的情况。(5分)(1)执行存储过程:use[SPJ]godeclare@solutionintexec@solution=[dbo].[jmsearch]select'solution'=@solutiongo(2)结果为:(2)删除jmsearch存储过程。(5分).资料dropprocedurejmsearch1.针对Student数据库,创建和执行如下的触发器:
5、(共计40分)(1)删除SC表上的外键约束,针对SC表创建一个名为insert_s的INSERT触发器。该触发器的功能:当用户向SC表中插入记录时,如果插入的cno值不是C表中Cno的已有值,则提示用户“不能插入记录这样的纪录”,否则提示“记录插入成功”。触发器创建成功之后,向SC表插入记录,验证触发器是否正常工作。(5分)(1)创建触发器:usestudentgocreatetriggerinsert_sonscafterinsertasif(exists(select*frominsertedwherecno!='1'orcno!='2'orcno!='3'orcno!='6
6、'))beginprint'不能插入记录这样的纪录'rollbacktransactionendelseprint'记录插入成功'(2)验证:usestudentgoinsertintosc(sno,cno,grade)values('95001','5','88')结果:(2)为S表创建一个名为dele_s1的DELETE触发器,该触发器的作用是禁止删除S表中的记录。触发器创建成功之后,删除S表中的记录,验证触发器是否正常工作。(5分)(1)创建触发器:.资料usestudentgocreatetriggerdele_s1onsafterdeleteasrollbacktran
7、sactionprint'不能删除表中纪录'go(2)验证:当要删除表中记录时,出现如下图所示情况(1)为S表创建一个名为dele_s2的DELETE触发器,该触发器的作用是删除S表中的记录时删除SC表中该学生的选课纪录。触发器创建成功之后,删除S表中的记录,验证触发器是否正常工作(SC表中的数据被正常删除)。(5分)(1)创建触发器:usestudentgocreatetriggerdele_s2onsfordeleteasdeletefromscwheresc.snoin(s
此文档下载收益归作者所有