创建触发器当新增、修改或删除学生时自动修改相应班级的学生人数; 20
以下是我建立的数据库。希望有哪位计算机大神能帮我解决这个问题!!谢谢了!!老师要求我们用这种格式:!!!!格式:CreateTriggertruStudent----触发...
以下是我建立的数据库。希望有哪位计算机大神能帮我解决这个问题!!谢谢了!!
老师要求我们用这种格式:!!!!
格式:
Create Trigger truStudent ----触发器名字
On Student ------在Student表中创建触发器
for Update | delete | insert ------为什么事件触发
As -------事件触发后锁钥做的事情
实例:
create trigger zengjia
on sc
for insert
as
update course set num=num+1
where cno in {select cno from sc inserted}
解释:
sc表中插入记录时 执行触发器
当插入到sc表的记录的课程号和course表的课程号相等时,课程数量加1操作
建立学生表
create table Student
(
Sno char(5) primary key,
Sname char(6) not null,
Ssex char(2) check (Ssex in('男','女')),
Sage int check (Sage>=15 and Sage<=30),
Sdept char(10) ,
Sclass char(10) ,
Syuan char(10)
);
建立课程表
create table Course
(
Cno int primary key,
Cname char(6) not null,
Cteach char(6),
Crenshu char(10),
);
建立成绩表
create table Grade
(
Cno int not null,
Grade int check (Grade>=0 and Grade<=100),
Bukao char(10),
Term char(10) not null,
foreign key (Cno) references Course(Cno)
);
建立教师表
create table Teacher
(
Tno int primary key,
Tname char(6) not null,
Tclass char(10),
Tdept char(10)
);
建立部门表
create table Apartment
(
Ano int not null,
Aname char(10) not null
)
D1学生表={学号+姓名+性别+年龄}
D2成绩表={成绩+课程号+是否补考+学期}
D3课程表={课程号+课程名+授课老师+人数}
D4 教师表=(教师号+教师姓名+教授课程+所在专业)
D5 部门表=(部门号+部门名)
明天就要上交了,谁能帮我写一下啊!太感谢了!! 展开
老师要求我们用这种格式:!!!!
格式:
Create Trigger truStudent ----触发器名字
On Student ------在Student表中创建触发器
for Update | delete | insert ------为什么事件触发
As -------事件触发后锁钥做的事情
实例:
create trigger zengjia
on sc
for insert
as
update course set num=num+1
where cno in {select cno from sc inserted}
解释:
sc表中插入记录时 执行触发器
当插入到sc表的记录的课程号和course表的课程号相等时,课程数量加1操作
建立学生表
create table Student
(
Sno char(5) primary key,
Sname char(6) not null,
Ssex char(2) check (Ssex in('男','女')),
Sage int check (Sage>=15 and Sage<=30),
Sdept char(10) ,
Sclass char(10) ,
Syuan char(10)
);
建立课程表
create table Course
(
Cno int primary key,
Cname char(6) not null,
Cteach char(6),
Crenshu char(10),
);
建立成绩表
create table Grade
(
Cno int not null,
Grade int check (Grade>=0 and Grade<=100),
Bukao char(10),
Term char(10) not null,
foreign key (Cno) references Course(Cno)
);
建立教师表
create table Teacher
(
Tno int primary key,
Tname char(6) not null,
Tclass char(10),
Tdept char(10)
);
建立部门表
create table Apartment
(
Ano int not null,
Aname char(10) not null
)
D1学生表={学号+姓名+性别+年龄}
D2成绩表={成绩+课程号+是否补考+学期}
D3课程表={课程号+课程名+授课老师+人数}
D4 教师表=(教师号+教师姓名+教授课程+所在专业)
D5 部门表=(部门号+部门名)
明天就要上交了,谁能帮我写一下啊!太感谢了!! 展开
2个回答
展开全部
按照你的意思 似乎只需要根据成绩表的变化来修改课程表中的人数,可以这样写:
create trigger tri_adjust_renshu
on grade
for insert,delete
as
begin
update course set renshu=renshu+1
where cno in {select cno from inserted} --删除时 inserted是空集,插入时非空
update course set renshu=renshu-1
where cno in {select cno from deleted} --插入时 inserted是空集,删除时非空
end
go
create trigger tri_adjust_renshu
on grade
for insert,delete
as
begin
update course set renshu=renshu+1
where cno in {select cno from inserted} --删除时 inserted是空集,插入时非空
update course set renshu=renshu-1
where cno in {select cno from deleted} --插入时 inserted是空集,删除时非空
end
go
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询