首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

触发器的有关问题

2012-01-30 
触发器的问题学生表学号姓名班级号1a0012b001科目表科目号科目班级号11数据库001成绩表科目号学号成绩****

触发器的问题
学生表
学号     姓名     班级号
    1         a             001
    2         b             001

科目表
科目号     科目         班级号
    11         数据库         001


成绩表
科目号     学号     成绩

*******************************
当我在科目表里插入(11,数据库,001)之后,要求在成绩表里插入科目号和对应班级中的全部学号,能否帮我写这样的一个触发器啊,急!!!




[解决办法]
create trigger aa on 科目表 after insert as
insert 成绩表 select A.科目号,B.学号,null
from inserted A left join 学生列 B
on A.班级号=B.班级号
[解决办法]
create table 学生表(学号 int identity(1,1) primary key , 姓名 varchar(20) null,班级号 varchar(20) null)
create table 科目表(科目号 int identity(1,1) primary key ,科目 varchar(20) null ,班级号 varchar(20) null)
create table 成绩表(科目号 int null, 学号 int null,成绩 numeric(20,6) null)
insert into 学生表(姓名,班级号) select 'ivan ', '001 ' union all select 'kevin ', '002 ' union all select 'casey ', '003 '
insert into 科目表(科目,班级号) select '语文 ', '001 ' union all select '数学 ', '002 ' union all select '英语 ', '003 '
go
create trigger ti_course on 科目表
for insert
as
begin
insert into 成绩表(科目号,学号,成绩) select
inserted.科目号,学生表.学号,0.00 from inserted left join 学生表 on inserted.班级号=学生表.班级号


end


select * from 成绩表
select * from 学生表

select * from 科目表
[解决办法]
create trigger tInsert on 科目
for insert
as
declare @a int
declare @b varchar(20)
select @a=科目号,@b=班级号 from inserted
insert 成绩(科目号,学号)
select @a,学号
from 学生
where 班级号=@b
go

热点排行