欢迎来到天天文库
浏览记录
ID:26151085
大小:541.67 KB
页数:15页
时间:2018-11-25
《数据库实验报告5》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、《数据库原理》实验报告题目:实验五:触发器、存储过程和函数学号姓名班级日期xxxxxxxxxxxx2016.10.29一.实验内容、步骤以及结果1.使用系统存储过程(sp_rename)将视图“V_SPJ”更名为“V_SPJ_三建”。(5分)execsp_renamev_spj,v_spj_三建;2.针对SPJ数据库,创建并执行如下的存储过程:(共计35分)(1)创建一个带参数的存储过程—jsearch。该存储过程的作用是:当任意输入一个工程代号时,将返回供应该工程零件的供应商的名称(SNAME
2、)和零件的名称(PNAME)以及工程的名称(JNAME)。执行jsearch存储过程,查询“J1”对应的信息。(10分)createprocjsearch@jnochar(2)asselectsname,pname,jnamefroms,p,j,spjwheres.sno=spj.snoandp.pno=spj.pnoandj.jno=spj.jnoandspj.jno=@jno;执行:execjsearch'J1'(1)使用S表,为其创建一个加密的存储过程—jmsearch。该存储过程的作用是
3、:当执行该存储过程时,将返回北京供应商的所有信息。(10分)创建加密存储过程:createprocjmsearchwithencryptionasselect*fromswheres.city='北京';sp_helptextjmsearch;(2)使用系统存储过程sp_helptext查看jsearch,jmsearch的文本信息。(5分)用系统存储过程sp_helptext查看jsearch:execsp_helpjsearch;execsp_helptextjsearch;用系统存储过程s
4、p_helptext查看jmsearch:execsp_helpjmsearch;execsp_helptextjmsearch;(1)执行jmsearch存储过程,查看北京供应商的情况。(5分)execjmsearch;(1)删除jmsearch存储过程。(5分)drop proc jmsearch;1.针对Student数据库,创建和执行如下的触发器:(共计40分)(1)删除SC表上的外键约束,针对SC表创建一个名为insert_s的INSERT触发器。该触发器的功能:当用户向SC表中插入记
5、录时,如果插入的cno值不是C表中Cno的已有值,则提示用户“不能插入记录这样的纪录”,否则提示“记录插入成功”。触发器创建成功之后,向SC表插入记录,验证触发器是否正常工作。(5分)createtriggerinsert_sonSCinsteadofinsertasdeclare@cnochar(4)beginselect@cno=cnofrominsertedif@cno=any(selectcnofromC)beginselect'记录插入成功'insertintoSCselect*fro
6、minsertedendelseselect'不能插入记录这样的记录'endreturn验证:insertintoSCvalues('95007','5','99');(1)为S表创建一个名为dele_s1的DELETE触发器,该触发器的作用是禁止删除S表中的记录。触发器创建成功之后,删除S表中的记录,验证触发器是否正常工作。(5分)createtriggerdele_s1onSinsteadofdeleteasbeginrollbackprint'禁止删除S表中的记录'end验证:delete
7、fromSwheresno='95007'(1)为S表创建一个名为dele_s2的DELETE触发器,该触发器的作用是删除S表中的记录时删除SC表中该学生的选课纪录。触发器创建成功之后,删除S表中的记录删除S表中的记录,验证触发器是否正常工作(SC表中的数据被正常删除)。(5分)createtriggerdele_s2onSafterdeleteasdeclare@snonchar(9)beginselect@sno=snofromdeleteddeleteSCwheresno=@snoend删
8、除验证:deleteSwheresno='95007'(1)为S表创建一个名为update_s的UPDATE触发器,该触发器的作用是禁止更新S表中“sdept”字段的内容。触发器创建成功之后,更新S表中“sdept”字段的内容,验证触发器是否正常工作。(5分)createtriggerupdate_sonSafterupdateasbeginifUPDATE(sdept)beginROLLBACKPRINT'禁止更新sdept字段'EndEND验证:updateSsetsdept=’cf’whe
此文档下载收益归作者所有