创建限制更新数据的触发器,限制将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
展开
 我来答
Raiuy
2012-12-10 · TA获得超过2916个赞
知道大有可为答主
回答量:2210
采纳率:0%
帮助的人:889万
展开全部
给你加了注释

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表中吗?
追答
是这样的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式