实验6触发器答案.docVIP

  • 151
  • 0
  • 约1.87千字
  • 约 3页
  • 2017-07-09 发布于河南
  • 举报
实验6触发器答案

《数据库系统概论》实验报告6 题目: TRIGGER 姓名 学号 日期 实验目的 1、掌握和使用企业管理器创建、修改、删除触发器 2、掌握和使用sql创建、修改、删除触发器 3、掌握触发器的执行 实验内容: 1、用企业管理器为表s创建一级联更新触发器trigger_s,要求:若修改s表中一学生的学号,则表sc中与该学生相关的学号自动修改CREATE TRIGGER trigger_s ON s FOR UPDATE AS if UPDATE(sno) begin declare @sno_new char(10),@sno_old char(10) select @sno_new=sno from inserted select @sno_old=sno from deleted update sc set sno=@sno_new where sno=@sno_old end 2、用企业管理器为表sc创建一限制更新触发器trigger_sc,要求:若修改sc表中一学生的学号,则要检查表s中是否存在与该学生相同的记录,若有则不许修改,若没有则可以。 CREATE TRIGGER trigger_sc ON sc FOR uPDATE AS if update(sno) begin declare @sno_new char(10),@SNO_OLD CHAR(10),@SNO_CNT INT SELECT @SNO_OLD=SNO FROM DELETED SELECT @SNO_CNT=COUNT(*) FROM S WHERE SNO=@SNO_OLD IF @SNO_CNT0 ROLLBACK TRANSACTION END 3、用sql为表ss创建一触发器trigger_sc_tri,要求:当插入记录或修改成绩时,确保此记录的成绩在0到100之间。 USE STUDENT GO CREATE TRIGGER SCORE_SC_TRI ON SC FOR INSERT,UPDATE AS DECLARE @SCORE_READ TINYINT SELECT @SCORE_READ=SCORE FROM INSERTED IF @SCORE_READ=0 AND @SCORE_READ =100 BEGIN PRINT CAOZUOCHENGGONG! RETURN END PRINT CHENGJI NOT IN 0-100 ROLLBACK TRANSACTION GO 4、用sql为表c创建一级联删除触发器trigger_dc,要求:通过课程名从表c中则删除某课程信息,同时删除表sc中与此课程相关的选课记录。 use st go create trigger trigger_dc on c for delete as declare @cno_del char(10) select @cno_del=cno from deleted delete from sc where cno=@cno_del go 5、用sql修改表c的触发器trigger_dc;通过课程名从表c中删除某课程信息,同时删除表sc和表tc中与此课程相关的记录。 use student go alter trigger trigger_dc on c for delete as declare @cno_del char(10) select @cno_del=cno from deleted delete from sc where cno=@cno_del delete from tc where cno=@cno_del go 6、用企业管理器修改触发器trigger_s,要求:若删除表s中某一个学生的记录信息,则自动删除表sc中与学生相关的记录信息。 create trigger trigger_s on s for delete as declare @sno_del char(10) select @sno_del =sno from deleted delete from sc where sno=@sno_del 7、用企业管理器删除触发器trigger_s 8、用sql删除表c的触发器trigger_dc use student drop trigger trigger_dc go

文档评论(0)

1亿VIP精品文档

相关文档