为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 +‘的信息!‘
时间: 2024-10-06 04:09:56