实验8和9
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验八触发器及应用
(1)为选课表分别建立插入和更新触发器,如果当前学生累计不及格门数达到5则给出警示信息。插入触发器
create trigger xk_trigger
on选课
for insert
as
declare @amount int,@xh char(10)
select @xh=学号from inserted
if @xh is not null
begin
select @amount=(select count(*)from选课where成绩<60 and学号=@xh )
if @amount>=5
begin
raiserror('该学生的累积不及格门数已经大于等于!',15,10)
end
End
insert into选课values('002','02','50')
insert into选课values('002','04','50')
insert into选课values('002','05','50')
insert into选课values('002','06','50')
insert into选课values('002','09','50')
更新触发器
create trigger xk_trigger2
on选课
for update
as
declare @amount int,@xh char(10)
select @xh=学号from inserted
if @xh is not null
begin
select @amount=(select count(*)from选课where成绩<60 and学号=@xh )
if @amount>=5
begin
raiserror('该学生的累积不及格门数已经大于等于!',15,10)
end
end
update选课set成绩=50 where学号='002'and课程编号='02'
update选课set成绩=50 where学号='002'and课程编号='04'
update选课set成绩=50 where学号='002'and课程编号='05'
update选课set成绩=50 where学号='002'and课程编号='06'
update选课set成绩=50 where学号='002'and课程编号='09'
(2)为课程表分别建立插入和更新触发器来建立约束规则:“专业基础”课的教师必须为“教授”或“副教授”,如果不满足约束则拒绝操作,并给出错误信息。
插入触发器
create trigger kc_trigger3
on课程
for insert
as
declare @zc char(10),@zrjs char(10),@kcbh char(10),@kcxz char(10)
select @kcbh=课程编号,@zrjs=责任教师from inserted
if @kcbh is not null
begin
select @kcxz=课程性质from课程
select @zc=职称from教师where教师编号in
(select责任教师from课程where课程性质='专业基础')
if @zc!='教授'or @zc!='副教授'
begin
raiserror('该专业基础课的教师不是教师或副教授!',16,10) rollback transaction
end
End
insert into课程values('03','高等数学','105','24','专业基础')
insert into课程values('08','中国近代史','101','32','专业基础')
更新触发器
create trigger kc_trigger4
on课程
for update
as
declare @zc char(10),@zrjs char(10),@kcbh char(10),@kcxz char(10) select @kcbh=课程编号,@zrjs=责任教师from inserted
if @kcbh is not null
begin
select @kcxz=课程性质from课程
select @zc=职称from教师where教师编号in
(select责任教师from课程where课程性质='专业基础')
if @zc!='教授'or @zc!='副教授'
begin
raiserror('该专业基础课的教师不是教师或副教授!',16,10) rollback transaction
end
End
update课程set课程性质='专业基础'where责任教师='106'
update课程set课程性质='专业基础'where责任教师='101'
实验9 用户管理和权限管理
create login jxt with password='123456'
create login jxt2 with password='123456' must_change,check_expiration = on create login jxt3 with password='123456', default_database=学生管理create login jxt4 with password='123456'
create login jxt5 with password='123456'
alter login jxt disable
alter login jxt enable
alter login jxt2 with password='666666'
alter login jxt3 with name=sunle
drop login jxt