码迷,mamicode.com
首页 > 其他好文 > 详细

第19讲++触发器

时间:2017-05-19 19:37:47      阅读:309      评论:0      收藏:0      [点我收藏+]

标签:action   auto   div   else   错误   select   weight   tran   where   

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

为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讲++触发器

标签:action   auto   div   else   错误   select   weight   tran   where   

原文地址:http://www.cnblogs.com/gaiyin/p/6879883.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!