create trigger tri_addStudent2 on Student for insert as
if(select COUNT(*) from Student,inserted where Student.Sid=inserted.Sid)>0 begin
print'学号发生冲突,请核对后重新填写!' rollback End
创建触发器当某一学生离开学校随着他的选课信息也会被删除:
create trigger m_s on Student for delete as delete SC from SC,deleted
where SC.Sid=deleted.Sid
创建触发器当某一课程不开时其选课信息也会被删除:
create trigger m_C on Course for delete as delete SC from SC,deleted
where SC.Cid=deleted.Cid
create trigger tri_addsc on SC for insert as
declare @SID char(20)
select @SID=Sid from inserted where Cid=inserted.Cid if(@SID=(select Sid from inserted )) begin
print'选课重复,请核对后重新填写!' rollback End
选课触发器:
create trigger tri_selectCourse on SC for insert,update
as if(select count(*) from Course,inserted where Course.Cid=inserted.Cid)>50 begin
print'所对应的课程选课人数不能超过50个人!' rollback end
else if(select COUNT(*) from Student,inserted where Student.Sid=inserted.Sid)>3 begin
print'对应学生的选课不能超过3门!' rollback end
else if(select S_control from select_T)='0' begin print'当前不是选课时间段' rollback End
存储过程:
建没有被选修课程存储过程:
create proc NOT_SELECT2 as select Cname from Course
where Cname not in(select Cname from Course,SC where Course.Cid=SC.Cid)
建学期选修总学分:
create proc xuefen_cont @sid varchar(20) as
select SUM(Credits) from Course,SC where(SC.Sid=@sid and SC.Cid=Course.Cid)
cCreate proc T_XKcout @Tna char(20) As
Select Tname,Cname,S_sum from C_selected where @Tna=Tname drop proc T_XKcout
添加外码级联约束:
alter table SC drop constraint FK__SC__Sid__1FCDBCEB
alter table SC add foreign key (Sid) references Student(Sid) on delete cascade update Department set Head='倪琼' where Did='104'
insert into Department values('107','生科院','李伟','13122101234');
insert into Teacher values('1020101','张强','男',\,\教师\); create proc NOT_SELECT2
Delete * from SC where Sid=’1312210144’ as select Cname
from Course
where Cname not in(select Cname from Course,SC where Course.Cid=SC.Cid) create proc xuefen_cont @sid varchar(20) as
select SUM(Credits) from Course,SC where(SC.Sid=@sid and SC.Cid=Course.Cid) Create proc T_XK @Tname char(20); @Cname chaar(20) output; @S_count int outptu As
Select @S_COUNT=S_sum from C_selected Exec T_XK ‘张倩’
1.当删除Reader表中某一读者基本信息时,触发Borrow表,删除相应的记录 create trigger Reader_delete on Reader for delete as
delete Borrow from deleted
where Borrow.ReaID=deleted.ReaID
2.当在中增加一条借阅记录时,使该图书的状态由“可借”变为“不可借” create trigger Borrow_insert1 on Borrow for insert as
declare @BookID char(9) select @BookID=BookID from inserted