欢迎来到天天文库
浏览记录
ID:56865447
大小:1.39 MB
页数:6页
时间:2020-07-16
《实验10:数据库完整性.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验10:数据完整性实验班级:计算机科学与技术2班学号:110姓名:徐旸一、实验目的本实验的目的是通过实验使学生加深对数据完整性的理解,学会创建和使用触发器。二、实验要求三、实验内容在SQLServerManagementStudio中创建触发器1.在SQLServerManagementStudio中,由服务器开始逐步扩展到触发器所属表的数据库(本例为学生选课数据库),打开表文件夹,在表窗口中用鼠标右击触发器所属的表(本例为选课表)。在弹出菜单上选择“所有任务”“管理触发器”项,则弹出触发器属性对话框。2.创建一个inser
2、t触发器,当在选课表中插入一条新记录时,给出‘你已经插入了一条新记录!!!’的提示信息。程序代码如下:createtriggerstuinserton选课forinsertasdeclare@msgchar(50)set@msg=’你已经插入了一条新记录!!!’print@msg打开选课表,往选课表输入一条任意数据,查看结果。3.在学生表上建立触发器trg1,当修改学生表中某个学生的学号时,如果选课表中存在该学生的选修记录时,则修改该同学的学号。createtriggertrg1on学生forupdateasprint'触发器
3、trg1开始工作----'declare@old_idnchar(6)declare@new_idnchar(6)select@old_id=学号fromdeletedselect@new_id=学号frominsertedifUPDATE(学号)beginupdate选课set学号=@new_idwhere学号=@old_idend4.在选课表上建立触发器trg2,当插入一行数据时,如果学号(Stid)和课程号(cid)错误则取消插入操作。5.创建一个insert触发器,当在选课表中插入一条新记录时,学号和课程号必须是已经存
4、在,且成绩应该在0----100之间。程序代码如下:createtriggerscinserton选课forinsertasdeclare@gradevaluerealset@gradevalue=(selectgradefrominserted)print‘触发器开始工作………………’ifnotexists(select学号frominsertedwhere学号in(select学号frompupil))beginprint‘无此学生的编号,请重新确认!!!’rollbacktransactionendelsebeginif
5、notexists(select课程号frominsertedwhere课程号in(select课程号fromcourse))beginprint‘无此课程的编号,请重新确认!!!’rollbacktransactionendelsebeginif@gradevalue<0or@gradevalue>100beginprint‘分数有误,请重新确认!!!!’rollbacktransactionendelseprint‘数据插入成功!!!!’endend6.创建一个after触发器,在学生表中删除某学生的记录时,删除其相应的选
6、课记录。程序代码如下:createtriggerstudeleteon学生fordeleteasdeclare@stunumchar(10)select@stunum=学号fromdeletedifnotexists(select*from学生,选课where学生.学号=选课.学号and学生.学号=@stunum)print‘无此学生的选课记录!!!!’elsebeginprint‘开始查找并删除该学生相映的选课记录……..‘deletefromscwhere学号=@stunumprint‘该学生的选课记录已经删除!!!!!’
7、end
此文档下载收益归作者所有