呵呵,不要搬出大叔大伯。1、 creat trigger a on table1 for insert,update as update table1 set 更新日期=getdate() form inserted i,table1 b where i.key=b.key -----不要告诉我你这个表没有主键 go2、 creat trigger a on b for insert,update as if exists (select 1 from inserted i,a where a.试卷编号=i.试卷编号 and a.总成绩<>i.A题得分+i.B题得分+...+i.N题得分 ) ROLLBACK TRANSACTION go
2、有两个表a,b。a中有一个总成绩字段,试卷编号字段,b中有各题得分字段。试卷编号字段 触发器要求:当添加记录时,自动检测相同试卷编号的各题得分之和是否等于相同试卷编号的总成绩!!!creat trigger a on b for insert,update as if exists (select 1 from inserted i,a where a.试卷编号=i.试卷编号 and a.总成绩<>i.A题得分+i.B题得分+...+i.N题得分 ) ROLLBACK TRANSACTION go 其中A题,B题是什么意思?? if exists (select 1 from inserted i,a where a.试卷编号=i.试卷编号 and a.总成绩<>(select sum(各题得分)from inserted i inner join a on i.试卷编号=b.试卷编号) ) 达不到目的,可以再教教 我么???拜托,大哥(或是大伯)
怎么没有得分,先当参考分数为得分 2、 creat trigger trg_a on a for insert,update as select 试卷编号,sum(参考分数) as 得分 into #Temp from b where 试卷编号 in (select 试卷编号 from inserted)
if exists (select 1 from inserted i,#Temp t where t.试卷编号=i.试卷编号 and i.总成绩<>t.得分 ) ROLLBACK TRANSACTION go
真应该给yang多加点分的,但心有余力不足!:)
low(每走一步都那么难) : 你的这个问题很有意思,我现在的毕业设计是搞VB和SQLSERVER的,不过不精,触发器一直不会用啊。就以你的问题为例,提几个问题 if exists (select 1 from inserted i,#Temp t where t.试卷编号=i.试卷编号 and i.总成绩<>t.得分 ) ROLLBACK TRANSACTION go 上面代码中的SELECT 1 是什么意思? ROLLBACK TRANSACTION 又是什么意思? 触发器代码编写好了以后,又怎么使用呢?
creat trigger a on table1
for insert,update
as
update table1
set 更新日期=getdate()
form inserted i,table1 b
where i.key=b.key -----不要告诉我你这个表没有主键
go2、
creat trigger a on b
for insert,update
as
if exists (select 1 from inserted i,a where a.试卷编号=i.试卷编号
and a.总成绩<>i.A题得分+i.B题得分+...+i.N题得分 )
ROLLBACK TRANSACTION
go
触发器要求:当添加记录时,自动检测相同试卷编号的各题得分之和是否等于相同试卷编号的总成绩!!!creat trigger a on b
for insert,update
as
if exists (select 1 from inserted i,a where a.试卷编号=i.试卷编号
and a.总成绩<>i.A题得分+i.B题得分+...+i.N题得分 )
ROLLBACK TRANSACTION
go
其中A题,B题是什么意思??
if exists (select 1 from inserted i,a where a.试卷编号=i.试卷编号
and a.总成绩<>(select sum(各题得分)from inserted i inner join a on i.试卷编号=b.试卷编号) )
达不到目的,可以再教教 我么???拜托,大哥(或是大伯)
a表字段:试卷编号,试卷总分,考试科目,考试时间
触发器:a.试卷总分要保证与b相同试卷编号的个体参考分数之合相等。
2、
creat trigger trg_a on a
for insert,update
as
select 试卷编号,sum(参考分数) as 得分 into #Temp from b
where 试卷编号 in (select 试卷编号 from inserted)
if exists (select 1 from inserted i,#Temp t where t.试卷编号=i.试卷编号
and i.总成绩<>t.得分 )
ROLLBACK TRANSACTION
go
你的这个问题很有意思,我现在的毕业设计是搞VB和SQLSERVER的,不过不精,触发器一直不会用啊。就以你的问题为例,提几个问题
if exists (select 1 from inserted i,#Temp t where t.试卷编号=i.试卷编号
and i.总成绩<>t.得分 )
ROLLBACK TRANSACTION
go
上面代码中的SELECT 1 是什么意思?
ROLLBACK TRANSACTION 又是什么意思?
触发器代码编写好了以后,又怎么使用呢?