实验8和9

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档