数据库实验报告三_第1页
数据库实验报告三_第2页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE4/NUMPAGES4数据库实验报告三数据库实验报告三

《数据库原理》实验报告

实验五:

触发器、存储过程和函数实验六:

ODBC/JDBC数据库编程

学号姓名班级日期2013302534杨添文100113032015.10.3

1

实验五:触发器、存储过程和函数

一、实验内容

1.使用系统存储过程(sp_rename)将视图“V_SPJ”更名为“V_SPJ_三建”。(5

分)

(1)在原有数据库SPJ中,建立如下语句:

execsp_rename'V_SPJ','V_SPJ三建'

(2)结果为:

2.针对SPJ数据库,创建并执行如下的存储过程:(共计35分)

(1)创建一个带参数的存储过程—jsearch。该存储过程的作用是:当任意

输入一个工程时,将返回供应该工程零件的供应商的名称(SNAME)

和零件的名称(PNAME)以及工程的名称(JNAME)。执行jsearch存储过

程,查询“J1”对应的信息。(10分)

(1)存储过程为:

createprocedurejsearch(@searchingfor_jnonchar(20))

as

begin

selectJ.JNAME,S.SNAME,P.PNAME

fromS,P,J,SPJ

where

SPJ.JNO=@searchingfor_jnoandSPJ.JNO=J.JNOand

SPJ.SNO=S.SNOandSPJ.PNO=P.PNO

End

use[SPJ]

go

(2)执行存储过程如下:

declare@solutionint

exec@solution=[dbo].[jsearch]

@searchingfor_jno=N'J1'

select'solution'=@solution

go

(3)结果:

(2)使用S表,为其创建一个加密的存储过程—jmsearch。该存储过程的作

用是:当执行该存储过程时,将返回北京供应商的所有信息。(10

分)

createprocedurejmsearch

withencryption

as

begin

select*

fromS

whereCITY='北京'

end

(3)使用系统存储过程sp_helptext查看jsearch,jmsearch的文本信息。

(5分)

(1)当输入为:

execsp_helptext'jsearch'

结果是:

(2)当输入为:

execsp_helptext'jmsearch'

结果是:

(4)执行jmsearch存储过程,查看北京供应商的情况。(5分)

(1)执行存储过程:

use[SPJ]

go

declare@solutionint

exec@solution=[dbo].[jmsearch]

select'solution'=@solution

go

(2)结果为:

(5)删除jmsearch存储过程。(5分)

dropprocedurejmsearch

3.针对Student数据库,创建和执行如下的触发器:(共计40分)

(1)删除SC表上的外键约束,针对SC表创建一个名为insert_s的INSERT

触发器。该触发器的功能:当用户向SC表中插入记录时,如果插入的cno值不是C表中Cno的已有值,则提示用户“不能插入记录这样的纪录”,否则提示“记录插入成功”。触发器创建成功之后,向SC表插入记录,验证触发器是否正常工作。(5分)

(1)创建触发器:

usestudent

go

createtriggerinsert_s

onsc

afterinsert

as

if(exists(

select*frominserted

wherecno!='1'orcno!='2'orcno!='3'orcno!=

'6')

)

begin

print'不能插入记录这样的纪录'

rollbacktransaction

end

else

print'记录插入成功'

(2)验证:

usestudent

go

insertinto

sc(sno,cno,grade)

values('95001','5','88')

结果:

(2)为S表创建一个名为dele_s1的DELETE触发器,该触发器的作用是禁

止删除S表中的记录。触发器创建成功之后,删除S表中的记录,验证触发器是否正常工作。(5分)

(1)创建触发器:

usestudent

go

createtriggerdele_s1

ons

afterdelete

as

rollbacktransaction

print'不能删除表中纪录'

go

(2)验证:

当要删除表中记录时,出现如下图所示情况

(3)为S表创建一个名为dele_s2的DELETE触发器,该触发器的作用是删

除S表中的记录时删除SC表中该学生的选课纪录。触发器创建成功之后,删除S表中的记录,验证触发器是否正常工作(SC表中的数据被正常删除)。(5分)

(1)创建触发器:

usestudent

go

createtriggerdele_s2

ons

fordelete

as

deletefromsc

wheresc.snoin

(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论