《数据库原理》实验报告实验五:触发器、存储过程和函数实验六:ODBC/:触发器、存储过程和函数一、实验容使用系统存储过程(sp_rename)将视图“V_SPJ”更名为“V_SPJ_”。(5分)(1)在原有数据库SPJ中,建立如下语句:execsp_rename'V_SPJ','V_SPJ'(2)结果为:针对SPJ数据库,创建并执行如下的存储过程:(共计35分)创建一个带参数的存储过程—jsearch。该存储过程的作用是:当任意输入一个工程代号时,将返回供应该工程零件的供应商的名称(SNAME)和零件的名称(PNAME)以及工程的名称(JNAME)。执行jsearch存储过程,查询“J1”对应的信息。(10分)(1)存储过程为:createprocedurejsearch(searchingfor_jnonchar(20))asbegin ,, fromS,P,J,SPJ where ====[SPJ]go(2)执行存储过程如下:declaresolutionintexecsolution=[dbo].[jsearch]searchingfor_jno=N'J1'select'solution'=solutiongo(3)结果:使用S表,为其创建一个加密的存储过程—jmsearch。该存储过程的作用是:当执行该存储过程时,将返回供应商的所有信息。(10分)createprocedurejmsearchwithencryptionasbegin select* fromS whereCITY=''end使用系统存储过程sp_helptext查看jsearch,jmsearch的文本信息。(5分)(1)当输入为:execsp_helptext'jsearch'结果是:(2)当输入为:execsp_helptext'jmsearch'结果是:执行jmsearch存储过程,查看供应商的情况。(5分)(1)执行存储过程:use[SPJ]godeclaresolutionintexecsolution=[dbo].[jmsearch]select'solution'=solutiongo(2)结果为:删除jmsearch存储过程。(5分)dropprocedurejmsearch针对Student数据库,创建和执行如下的触发器:(共计40分)删除SC表上的外键约束,针对SC表创建一个名为insert_s的INSERT触发器。该触发器的功能:当用户向SC表中插入记录时,o的已有值,则提示用户“不能插入记录这样的纪录”,否则提示“记录插入成功”。触发器创建成功之后,向SC表插入记录,验证触发器是否正常工作。(5分)(1)创建触发器:usestudentgocreatetriggerinsert_sonscafterinsertasif(exists(select*frominsertedwhereo!='1'oro!='2'oro!='3'oro!='6'))beginprint'不能插入记录这样的纪录'rollbacktransactionendelseprint'记录插入成功'(2)验证:usestudentgoinsertintosc(o,grade)values('95001','5','88')结果:为S表创建一个名为dele_s1的DELETE触发器,该触发器的作用是禁止删除S表中的记录。触发器创建成功之后,删除S表中的记录,验证触发器是否正常工作。(5分)(1)创建触发器:usestudentgocreatetriggerdele_s1onsafterdeleteasrollbacktransactionprint'不能删除表中纪录'go(2)验证:当要删除表中记录时,出现如下图所示情况为S表创建一个名为dele_s2的DELETE触发器,该触发器的作用是删除S表中的记录时删除SC表中该学生的选课纪录。触发器创建成功之后,删除S表中的记录,验证触发器是否正常工作(SC表中的数据被正常删除)。(5分)(1)创建触发器: ( selectsnofromdeleted )(2)验证:(前提:删除触发器dele_s1,否则不能删除S表记录)='95001'sele
数据库实验报告三 来自淘豆网m.daumloan.com转载请标明出处.