- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
《数据库原理》试验汇报
題目:试验五:触发器、存储過程和函数
學号
姓名
班级
曰期
xxxxx
xx
xxxxx
.10.29
试验内容、环节以及成果
使用系统存储過程(sp_rename)将视图“V_SPJ”更名為“V_SPJ_三建”。(5分)
execsp_renamev_spj,v_spj_三建;
针對SPJ数据库,创立并执行如下的存储過程:(合计35分)
创立一种带参数的存储過程—jsearch。该存储過程的作用是:當任意输入一种工程代号時,将返回供应當工程零件的供应商的名称(SNAME)和零件的名称(PNAME)以及工程的名称(JNAME)。执行jsearch存储過程,查询“J1”對应的信息。(10分)
createprocjsearch@jnochar(2)
asselectsname,pname,jnamefroms,p,j,spj
wheres.sno=spj.snoandp.pno=spj.pnoandj.jno=spj.jnoandspj.jno=@jno;
执行:execjsearchJ1
使用S表,為其创立一种加密的存储過程—jmsearch。该存储過程的作用是:當执行该存储過程時,将返回北京供应商的所有信息。(10分)
创立加密存储過程:
createprocjmsearchwithencryptionas
select*fromswheres.city=北京;
sp_helptextjmsearch;
使用系统存储過程sp_helptext查看jsearch,jmsearch的文本信息。(5分)
用系统存储過程sp_helptext查看jsearch:
execsp_helpjsearch;
execsp_helptextjsearch;
用系统存储過程sp_helptext查看jmsearch:
execsp_helpjmsearch;
execsp_helptextjmsearch;
执行jmsearch存储過程,查看北京供应商的状况。(5分)
execjmsearch;
删除jmsearch存储過程。(5分)
drop?proc?jmsearch;
针對Student数据库,创立和执行如下的触发器:(合计40分)
删除SC表上的外键约束,针對SC表创立一种名為insert_s的INSERT触发器。该触发器的功能:當顾客向SC表中插入记录時,假如插入的cno值不是C表中Cno的已經有值,则提醒顾客“不能插入记录這样的纪录”,否则提醒“记录插入成功”。触发器创立成功之後,向SC表插入记录,验证触发器与否正常工作。(5分)
createtriggerinsert_s
onSC
insteadofinsert
as
declare@cnochar(4)
begin
select@cno=cnofrominserted
if@cno=any(selectcnofromC)
begin
select记录插入成功
insertintoSC
select*frominserted
end
else
select不能插入记录這样的记录
end
return
验证:
insertintoSC
values(95007,5,99);
為S表创立一种名為dele_s1的DELETE触发器,该触发器的作用是严禁删除S表中的记录。触发器创立成功之後,删除S表中的记录,验证触发器与否正常工作。(5分)
createtriggerdele_s1
onS
insteadofdelete
as
begin
rollback
print严禁删除S表中的记录
end
验证:
delete
fromS
wheresno=95007
為S表创立一种名為dele_s2的DELETE触发器,该触发器的作用是删除S表中的记录時删除SC表中该學生的选課纪录。触发器创立成功之後,删除S表中的记录删除S表中的记录,验证触发器与否正常工作(SC表中的数据被正常删除)。(5分)
createtriggerdele_s2onS
afterdelete
as
declare@snonchar(9)
begin
select@sno=snofromdeleted
deleteSC
wheresno=@sno
end
删除验证:
deleteS
wheresno=95007
為S表创立一种名為update_s的UPDATE触发器,该触发器的作用是严禁更新S表中“sdept”字段的内容。触发器创
文档评论(0)