[计算机]数据库实验报告六

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

____
专业__日期:
实验六:存储过程与触发器的应用
一、实验目的
1、掌握创建存储过程的方法和步骤。

2.掌握存储过程的使用方法。

3.掌握创建触发器的方法和步骤。

4.掌握触发器的使用方法。

二、实验内容
1、存储过程的创建、执行和删除;
2、触发器的创建、执行和删除。

三、实验步骤
1、存储过程的创建、执行和删除。

(1)使用S_C数据库中的student表、course表;sc表创建一个带参数的存储过程—cjjicx。

该存储过程的作用是:当任意输入一个学生的XX时,将从三个表中返回该学生的学号、选
修的课程名称和课程成绩。

Cjjicx的创建语句:
createprocedure[dbo].[cjjicx]@sname nchar(10)
as
select s.sno,ame,sc.grade
from student as s innerjoin sc as sc on s.sno=sc.sno innerjoin course as c on o= o
where sname=@sname
(2)执行cjjicx存储过程,查询“XXX”(自己选个名字)的学号、选修课程和课程成绩。

执行语句:
结果描述:
(3)使用系统存储过程sp_helptext查看存储过程cjjicx的文本信息。

查看结果描述:
(4)使用S_C数据库中的student表,为其创建一个存储过程—jmxs。

该存储过程的作用是:当执行该存储过程时,将返回物流工程系学生的所有信息。

Jmxs创建语句:
(5)执行jmxs存储过程,查看物流工程系学生的情况。

执行语句:
结果描述:
(6)删除jmxs存储过程。

删除语句:
2、触发器的创建、执行和删除。

(1)在S_C数据库中建立一个名为insert_xh的INSERT触发器,存储在sc表中。

该触发器的作用是:当用户向sc表中插入记录时,如果插入了在student表中没有的学生学号sno,则提示用户不能插入记录,否则提示记录插入成功。

insert_xh的创建语句:
createtrigger insert_xh
on sc
forinsert
as
declare@sno nchar(10),@number int
select@sno=sno
from inserted
select@number=count(*)
from students
where s.sno=@sno
if(@number=0)
begin
print'不能插入'
rollbacktransaction
end
(2)为S_C数据库中的student表创建一个名为dele_stu的DELETE触发器,该触发器的作用是禁止删除student表中的记录。

dele_stu的创建语句:
createtrigger dele_stu
on student
fordelete
as
declare@number int
select@number=count(*)
from deleted
if(@number!=0)
begin
print'禁止删除'
rollbacktransaction
end
或者
createtrigger dele_stu
on student
fordelete
as
if@@rowcount> 0
begin
print'禁止删除'
rollbacktransaction
end
(3)为s_c数据库中的sc表创建一个名为update_grade的UPDATE触发器,该触发器的作用是禁止更新sc表中的grade字段的内容。

update_grade的定义语句:
createtrigger update_grade
on sc
forupdate
as
if (update(grade))
begin
print'禁止更新成绩'
rollbacktransaction
end
(4)禁用update_grade触发器。

禁用update_grade触发器的命令:
disabletrigger update_grade on sc
禁用的后果描述:
(5)删除update_grade触发器。

删除update_grade触发器的命令:
droptrigger update_grade
四、实验小结。

相关文档
最新文档