SQL触发器作业

发布 2022-09-02 19:53:28 阅读 3943

.为sc创建一个触发器,当插入或者修改一个记录时候,确保此记录的成绩在0-100之间。

create trigger score_sc_tri

on sc for insert,update

as declare @score_read tinyint

select @score_read=score from inserted

if @1.为sc创建一个触发器,当插入或者修改一个记录时候,确保此记录的成绩在0-100之间。

create trigger score_sc_tri

on sc for insert,update

as declare @score_read tinyint

select @score_read=score from inserted

if @score_read>=0 and @score_read<=100

beginprint ' 操作完成!'

return

endprint '成绩超出~之间!请重新输入。'

rollback transaction

insert into sc values('s1','c5',190)

go insert into sc values('s1','c5',100)

goupdate sc set score=130 where sno='s2'and cno='c5'

goupdate sc set score=60 where sno='s2'and cno='c5'

go2.为t创建一个触发器,男职工年龄不超过60周岁,女职工是教授的年龄不超过60,其他女职工不超过55.

create trigger trigger_teacher

on teacher for update ,insert

as declare @age_new int,@sex char(2),@prof char(10)

select @age_new=age from inserted

select @sex=sex ,@prof=prof from teacher

if @sex='男'and @age_new<=60and @age_new>0

beginprint '操作完成'

return

endelse if @sex='女'and @prof='教授' and @age_new<=60and @age_new>0

beginprint '操作完成'

return

endelse if @sex='女'and @prof<>'教授' and @age_new<=55and @age_new>0

beginprint '操作完成'

return

endprint '记录数据错误!请重新输入。'

rollback transaction

insert into teacher values('s1','c5','男','63

go 3.为tc\c\sc创建参照完整性,级联删除和级联修改触发器。

为表c创建一级联更新触发器trigger_course。

create trigger trigger_course

on course

for update as

if update(cno)

begindeclare @cno_new char(2),@cno_old char(2)

select @cno_new=cno from inserted

select @cno_old=cno from deleted

update sc set cno=@cno_new where cno=@cno_old

update tc set cno=@cno_new where cno=@cno_old

end为表sc创建一限制更新触发器trigger_sc

要求:若修改sc表中一记录的课号,则要检查表course中是否存在与该课号相同的记录,若有则不许修改,若没有则可修改。

create trigger trigger_sc

on scfor update as

if update(cno)

begindeclare @cno_new char(5),@cno_old char(5),@cno_cnt int

select @cno_old=cno from deleted

select @cno_cnt=count(*)from course where cno=@cno_old

if @cno_cnt<>0

rollback transaction

end为表tc创建一限制更新触发器trigger_tc

要求:若修改tc表中一记录的课号,则要检查表course中是否存在与该课号相同的记录,若有则不许修改,若没有则可修改。

create trigger trigger_tc

on tcfor update as

if update(cno)

begindeclare @cno_new char(5),@cno_old char(5),@cno_cnt int

select @cno_old=cno from deleted

select @cno_cnt=count(*)from course where cno=@cno_old

if @cno_cnt<>0

rollback transaction

end用sql为表c创建一个级联删除触发器trigger_dc:通过课程名从c表中删除某课程信息,同时删除sc,tc表中与此课程相关的选课记录。

use jiaoxuedb

gocreate trigger trigger_dcourse

on course for delete

as declare @cno_del char(5)

select @cno_del=cno from deleted

delete from sc where

delete from tc where

go)验证触发器的作用。

delete from course where cno= '01001'

goinsert into course values('01001','信息与计算科学','90','4.0')

go insert into sc values('s1','c5',100)

goupdate sc set score=130 where sno='s2'and cno='c5'

goupdate sc set score=60 where sno='s2'and cno='c5'

go为sc创建一个触发器,当插入或者修改一个记录时候,确保此记录的成绩在0-100之间。

SQL触发器语法 1

sql触发器。一 触发器的基本概念。1 触发器的定义。触发器是一种特殊的存储过程,它和表密切相连,可以看作是 定义的一部分 当用户对指定表操作时,触发器会自动执行。触发器在 update insert delete等操作执行结束后才执行。2 触发器的功能。1 级联更新数据库中相关表的数据 2 实现多...

SQL触发器语法 1

sql触发器。一 触发器的基本概念。1 触发器的定义。触发器是一种特殊的存储过程,它和表密切相连,可以看作是 定义的一部分 当用户对指定表操作时,触发器会自动执行。触发器在 update insert delete等操作执行结束后才执行。2 触发器的功能。1 级联更新数据库中相关表的数据 2 实现多...

正反相施密特触发器电路的工作原理详解

什么叫触发器。施密特触发电路 简称 是一种波形整形电路,当任何波形的信号进入电路时,输出在正 负饱和之间跳动,产生方波或脉波输出。不同于比较器,施密特触发电路有两个临界电压且形成一个滞后区,可以防止在滞后范围内之噪声干扰电路的正常工作。如遥控接收线路,传感器输入电路都会用到它整形。施密特触发器。一般...