为了账号安全,请及时绑定邮箱和手机立即绑定

如下内容,在SC-log中应该有2行,但却只有一行,为什么?怎么修改?

如下内容,在SC-log中应该有2行,但却只有一行,为什么?怎么修改?

弑天下 2022-05-05 12:07:49
在SC表上编写update触发器,当修改SC表中的grade字段时将其修改前后的信息保存在SC_log表中。我编的触发器create trigger tr2on SCafter updateasdeclare @Ssno intselect @Ssno=Sno from inserteddeclare @Scno intselect @Scno=Cno from inserteddeclare @Soldgrade intselect @Soldgrade=Grade from deleteddeclare @Snewgrade intselect @Snewgrade=Grade from insertedif update(Grade)begininsert into SC_logvalues(@Ssno,@Scno,@Soldgrade,@Snewgrade)end然后更新update SCset Grade='99'where Cno='3'
查看完整描述

2 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

--简单的东西,你搞复杂了
create trigger tr2
on SC
after update
as
if update(grade)
insert into SC_log
select a.sno,a.cno,b.grade,a.grade
from insered a,deleted b
where a.sno=b.sno and a.cno=b.cno

查看完整回答
反对 回复 2022-05-09
?
森林海

TA贡献2011条经验 获得超2个赞

怎么运行报sc_log对象名不存在 当我创建sc_log表 报在表 'sc_log' 中多次指定了列名 'grade'。运行代码如下
create table SC_log( ssno varchar(9),ccno varchar(4),oldgrade int,newgrade int)
create trigger tr2
on SC
after update
as
declare @Ssno varchar(9)
select @Ssno=Sno from inserted
declare @Scno varchar(4)
select @Scno=Cno from inserted
declare @Soldgrade int
select @Soldgrade=Grade from deleted
declare @Snewgrade int
select @Snewgrade=Grade from inserted
if update(Grade)
begin
insert into SC_log
values(@Ssno,@Scno,@Soldgrade,@Snewgrade)
end
return
update sc set grade=66 where Cno='10'



查看完整回答
反对 回复 2022-05-09
  • 2 回答
  • 0 关注
  • 266 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信