- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实 验 报 告
课程名称: 数据库系统原理
姓 名:
学 号:
班 级:
数学与计算机科学学院
实验名称:存储过程与触发器
指导教师: 日期:年 月 日
实验内容
1.为Student表建立触发器T1,当插入或修改表中数据时,保证所操作的记录sage值大于0。
2.为Student表建立触发器T2,禁止删除学号为200215121的同学。
3.Student表中的学号是唯一且不可改变的,创建触发器T3实现更新中编号的不可改变性。
4.演示违反T1触发器的约束的插入操作。
5.演示违反T1触发器的约束的修改操作。
6.演示违反T2触发器的约束的删除操作。
7.演示违反T3触发器的约束的修改操作。
8.编写一无参存储过程,用于查询Student表中的所有记录。然后调用该存储过程。
9.编写一存储过程,根据学生的姓名,查询该学生选修的课程名和成绩。然后调用该存储过程。
10.编写向SC表中插入一条选课记录的存储过程。然后调用该存储过程。
11.编写根据指定的姓名,在Student中删除该学生记录的存储过程。然后调用该存储过程。
12.编写存储过程,在SC表中根据指定的学生姓名,修改其选修某门课程的成绩。然后调用该存储过程。
13.将SC表学生选修2号课程的成绩置零;然后调用该存储过程。
实验目的
1.熟悉通过SQL创建触发器;
2.理解触发器约束的违约处理;
3.熟悉存储过程的功能、分类和使用原则。
实验设备
硬件:x64处理器2.00GHz,内存8GB
软件:Windows 10,Microsoft SQL Sever 2008,Microsoft SQL Sever Management Studio
实验过程
第1题:
create trigger t1 on Student
for insert ,update
as
if(select sage from inserted)1
begin printerror
rollback transaction
end
第2题:
create trigger T2 on Student
for delete
as
if(select Sno from deleted)=200215121
begin
printerror
rollback transaction
end
第3题:
create trigger t3 on Student
for update
as
if update(Sno)
begin
printerror
rollback transaction
end
第4题:
insert
into Student(Sno,Sname,Ssex,Sage,Sdept)
values(201215128,啊三,男,-1,CS)
select * from Student;
第5题:
update Student
set Sage=-4
where Sno=201215121
select * from Student;
第6题:
delete
from Student
where Sno=201215121
第7题:
update Student
set Sno=201215188
where Sno=201215121
select * from Student;
第8题:
use STU
go
create procedure selstu
as
select *
from Student
调用过程:
go
execute selstu
第9题:
use STU
go
create procedure stuc
@name char(11)
as
select sname,cname,grade
from Student,Course,SC
where sname=@name and Student.Sno=SC.Sno and SC.Cno=Course.Cno
调用过程:
go
execute stuc 李勇
第10题:
use STU
go
create procedure instsc
(@stno char(10),@cSno char(4),@gd smallint)
as
begin
insert into SC values(@stno,@csno,@gd)
end
调用过程:
go
execute instsc 200215124,3,99
第11题:
use STU
go
文档评论(0)