首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

触发器的编写

2012-01-28 
求一个触发器的编写成绩表:result_info列:stu_id,course_no,result老师要求在成绩表上编写一个触发器,不能

求一个触发器的编写
成绩表:result_info
列:stu_id,course_no,result

老师要求在成绩表上编写一个触发器,
不能够修改低于60分的学生成绩,否则报错并取消操作

可是我编的触发器在进行批量修改时出错,只有当要修改的不及格成绩在最后一行才生效。比如:
stu_id           course_no         result
001                         1                     80
001                         2                     45
001                         3                     70
我使用:update   result_info   set   result=90   where   stu_id=001
这个语句时触发器就无效,请各位指教~~~

我写的触发器:
if   exit(select   name   from   sysobjects  
                  where   name= 'tr_result '   and   type= 'tr ')
drop   trigger   tr_result
go
create   trigger   tr_result   on   result_info
for   update,insert
as
        declare   @result   float
        select   @result=result   from   deleted
        if   @result <60
              begin
                      raiserror( '禁止修改不及格成绩! ',16,1)
                      rollback   transaction
              end
go




[解决办法]
create trigger tr_result on result_info
for update,insert
as
if exists(select 1 from deleted where result <60)
begin
raiserror( '禁止修改不及格成绩! ',16,1)
rollback transaction
end
go

热点排行