第19讲++触发器

Posted 该☆隐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第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讲++触发器的主要内容,如果未能解决你的问题,请参考以下文章

Python代码阅读(第19篇):合并多个字典

第19讲 不带参数功能FC的编程与应用

VSCode 如何操作用户自定义代码片段(快捷键)

你知道的Go切片扩容机制可能是错的

第19讲——动态链接库

19 01 11 javascript ?????????????????????(???????????????) ??????????????????????????????(代码片段