柯侧耳倾听者 - 云代码空间
—— 翱翔在Java世界的海洋之上
1. 实验目的
本实验的目的是通过实验使学生加深对数据完整性的理解,学会创建和使用触发器,维护表上特殊业务规则以及表之间数据联动,理解For/Instead of 触发器的区别。
2. 实验准备 复习第五章触发器的相关内容
3. 实验内容
本实验的内容为:
使用SQL查询分析器设计触发器,通过SQL Server企业管理器定义它们。
1. 具体完成下面例题:在ST_DB数据库中利用触发器来保证学生选课库中选课表的参照完整性,以维护其外码值与参照表中的主码值一致。
CREATE TRIGGER SC_inserted ON sc
FOR INSERT
AS
IF (SELECT COUNT(*)
FROM s,inserted,c
WHERE s.sno = inserted.sno AND inserted.cno =c.cno)=0
ROLLBACK TRANSACTION
2. 把课件第5章中卷烟数据库SMOKE及其触发器的例子在Sql server中完成。
3. 将SMOKE数据库中的触发器改为每一种卷烟品牌可以多次进货,可以多次销售,同时维护两个表上的业务规则以及两个表中的数据联动。
4. 创建一个规则,使成绩大于等于零。并将其绑定到成绩列上。
5. .创建一个默认值,并绑定到学分列上,使学分默认为4个学分。
6. 建立一个update触发器,当更新sc表中的grade列时,触发器检查成绩是否提高10%。如果成绩超过了10%,将以ROLLBACK语句复原触发器和调用触发器语句,并打印“成绩升幅太大,更新失败!”,否则,打印“成绩更新成功!”。
4. 实验过程记载
在实验当中,虽然遇到了一些问题,让自己不知所措,难以解决,但是随着实验的进行,自己对数据库操作有了一定的了解,在老师和同学的细心解答下,我慢慢的解决了在实验当中所遇到的困难,也是自己学习到了更多的知识,操作起来也更加熟练。
5. 收获体会
在这次的学习当中,我掌握了SQL Server的一些常用的的方法,也学会了很多有关SQL语句的知识,以及对数据库中数据更新的一些基本操作,让我对数据库语言有了基本的认识。所以在今后的学习中,要更加努力掌握更多的知识,更好的学好数据库这门课程,多于老师和同学交流。