实验10 触发器的创建和使用.docVIP

  • 95
  • 0
  • 约1.66千字
  • 约 7页
  • 2022-06-15 发布于新疆
  • 举报
实验10 触发器 一、实验目的 1、掌握触发器的创建及使用方法 二、实验预习 1、什么是触发器?触发器的功能是什么? 2、触发器定义语句格式。 3、触发器的使用。 三、实验内容和要求 创建触发器实现:向成绩表中插入信息时,要求学号必须是学生表中的学号,课号是课程表中存在的课号。写出一个激发触发器运行的语句。 创建触发器实现:删除学生表中学生信息时,同时删除成绩表中该学生的信息。写出一个激发触发器运行的语句。 创建触发器实现:限制修改成绩大于等于90分的课程成绩。写出一个激发触发器运行的语句。 创建视图V_XK,用于显示学生学号,姓名,课程号,课程名,成绩的查询结果,创建一触发器实现,当对视图V_XK的成绩修改时,由触发器实现对成绩表中成绩进行修改。写出一个激发触发器运行的语句。 示例: 以下例题均以雇员表和工作表两个关系为例,这两个关系如下: 雇员表(雇员编号,雇员名,工作编号,工资,电话) 工作表(工作编号,最低工资,最高工资) 举例1:创建限制最低工资必须大于等于400的触发器。 CREATE TRIGGER tri_job_salary1 ON 工作表 FOR INSERT, UPDATE AS IF EXISTS( SELECT * FROM INSERTED WHERE 最低工资 400 ) BEGIN PRINT 最低工资必须大于等于400 ROLLBACK END 举例2:创建实现限制最低工资必须小于最高工资的触发器。 CREATE TRIGGER tri_job_salary2 ON 工作表 FOR INSERT, UPDATE AS IF EXISTS(SELECT * FROM INSERTED WHERE 最低工资 = 最高工资 ) BEGIN PRINT 最低工资必须小于最高工资 ROLLBACK END 举例3:创建实现限制雇员的工资必须在工作表的相应工作的最低工资和最高工资之间。 CREATE TRIGGER tri_emp_salary ON 雇员表 FOR INSERT, UPDATE AS IF EXISTS (SELECT * FROM INSERTED a JOIN 工作表 bON a.工作编号 = b.工作编号 WHERE 工资 NOT BETWEEN 最低工资 AND 最高工资 ) ROLLBACK 限制更新数据的触发器 例4:限制将SC表中不及格学生的成绩改为及格。 CREATE TRIGGER tri_grade ON SC FOR UPDATE AS IF UPDATE(Grade) IF EXISTS(SELECT * FROM INSERTED JOIN DELETED ON INSERTED.Sno = DELETED.Sno WHERE INSERTED.Grade = 60 AND DELETED.Grade 60) ROLLBACK 限制删除的触发器 例5:限制删除SC表中成绩不及格学生的修课记录。 CREATE TRIGGER tri_del_grade ON SC FOR DELETE AS IF EXISTS(SELECT * FROM DELETED WHERE Grade 60) ROLLBACK

文档评论(0)

1亿VIP精品文档

相关文档