创建限制更新数据的触发器,限制将SC表中不及格学生的成绩改为及格(可以帮我解释一下以下代码吗?)
createtriggertri_gradeonscforupdateasifupdate(grade)ifexists(select*frominsertedjoind...
create trigger tri_grade
on sc for update
as
if update(grade)
if exists(select * from inserted join deleted
on inserted.sno=deleted.sno
where inserted.grade>=60
and deleted.grade<60)
rollback 展开
on sc for update
as
if update(grade)
if exists(select * from inserted join deleted
on inserted.sno=deleted.sno
where inserted.grade>=60
and deleted.grade<60)
rollback 展开
1个回答
展开全部
给你加了注释
create trigger tri_grade --创建一个叫tri_grade的触发器
on sc for update --在sc表上update时触发
as
if update(grade) --如果修改的是grade字段
if exists(select * from inserted join deleted --连接inserted和deleted,其实就是获取新旧两组数据
on inserted.sno=deleted.sno --连接
where inserted.grade>=60 --新数据大于等于60
and deleted.grade<60) --老数据小于60
rollback --这个时候就回滚,不允许修改
create trigger tri_grade --创建一个叫tri_grade的触发器
on sc for update --在sc表上update时触发
as
if update(grade) --如果修改的是grade字段
if exists(select * from inserted join deleted --连接inserted和deleted,其实就是获取新旧两组数据
on inserted.sno=deleted.sno --连接
where inserted.grade>=60 --新数据大于等于60
and deleted.grade<60) --老数据小于60
rollback --这个时候就回滚,不允许修改
追问
请问..是修改以前的旧数据是存到deleted表中,修改之后的新数据存到inserted表中吗?
追答
是这样的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询