数据库多表触发器

来源:百度知道 编辑:UC知道 时间:2024/06/02 01:15:20
现有三个表,表A,B,C A中学生编号为主键,B中课程编号为主键,C中学生编号和课程编号为主键,现在想编写个触发器,使得A中的挂科记录随着C中的成绩而定,即成绩小于60分,则挂科记录为挂科谢谢了

在C表上建个触发器:
**************
oracle:
**************
create or replace trigger c_trigger on c for each row
begin
if inserting then
if :new.成绩<60 then
update A set 挂科记录 where 学生编号=:new.学生编号;
end if;
end if;
if updating then
if :new.成绩<60 then
update A set 挂科记录 where 学生编号=:old.学生编号;
end if;
end if;
end;
/
******************
SqlServer:(见两个)
******************
create trigger c_trigger_insert on c for insert as
declare @cnt int;
set @cnt=(select 成绩 from inserted);
if @cnt < 60
update A set 挂科记录 where 学生编号(select 学生编号 from inserted);

create trigger c_trigger_update on c for update as
declare @cnt int;
set @cnt=(select 成绩 from updated);
if @cnt < 60
update A set 挂科记录 where 学生编号(select 学生编号 from updated);

---
以上,希望对你有所帮助。