首页 > 代码库 > 第19讲++触发器

第19讲++触发器

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

为xs_kc表创建一个名为t1的insert触发器,当向xs_kc表进行插入操作时激发该触发器,并给出提示信息“有新成绩信息插入到xs_kc表中!”。

create    trigger    t1
     on   xs_kc      for   insert
     as    print   ‘有新成绩信息插入到xs_kc表中! ’
go
insert     xs_kc    values( 2012130101, 111, 87, null )

要在xscj库的xsqk表中插入下面所示的2条信息,如果在该表上未创建触发器,则可成功插入到xsqk表中。但我们希望插入的信息必须是“计算机应用” 系,否则就撤消刚才的插入,并返回错误信息。用触发器实现该约束

use xscj
insert  xsqk
values(2012140101, 陈希, 1, 1995-8-12, 环境艺术, 传媒)
insert  xsqk
values(2012130110, 黄倩, 0, 1996-1-1, 信息安全, 计算机应用)

技术分享

为xsqk表创建一个名为t3的delete触发器,当要删除信息安全专业学生的数据行时,激发该触发器,撤销删除操作,并给出提示信息“不能删除信息安全专业的学生信息!”,否则给出提示信息“删除成功!”

create  trigger  t3
on  xsqk
for  delete
as
   if(select  专业名  from  deleted)=‘信息安全’
     begin   
       rollback transaction
       print ‘不能删除信息安全专业的学生信息!’
     end
   else
     print ‘删除成功!’
go
delete   xsqk    where    专业名= ‘信息安全’

为xsqk表创建一个update触发器,当更新了某位学生的学号信息时,就用触发器级联更新xs_kc表中相关的学号信息。

create  trigger  t4
on  xsqk
for  update 
as
declare  @old  char(10), @new  char(10)
select  @old=deleted.学号, @new=inserted.学号
from  deleted, inserted
where  deleted.姓名=inserted.姓名
print  准备级联更新xs_kc表中的学号信息…
update  xs_kc
set  学号=@new
where  学号=@old
print  已经级联更新xs_kc表中原学号为+@old +的信息!

技术分享

 

第19讲++触发器