在数据库众多功能中,触发器虽然显得不是很起眼,但其用处也小,所以本篇文章小编就专门来带小伙伴们了解SqlServer中触发器的实现。
示例:
--1) 在student上创建 < strong > INSERT触发器 < /strong>stu_insert,要求在student表中插入记录时(要求每次只能插入一条记录),这个触发器都将更新class表中的class_nun列。并测试触发器stu_insert。 create trigger stu_insert on student for insert as update class set class_num = class_num + 1 where class_id = (select class_id from inserted) select * from class --测试 insert into student values('0602011', '文', '女', '1986-09-21', '0602') select * from class --2) 在student上创建 < strong > DELETE触发器 < /strong>stu_delete,要求在student表中删除记录时,这个触发器都将更新class表中的class_nun列。并测试触发器stu_delete。 create trigger stu_delete on student for delete as update class set class_num = class_num - 1 where class_id = (select class_id from deleted) --测试 delete from student where stu_id = '0601001' --3) 查看触发器相关信息: 使用系统存储过程 < strong > sp_help, sp_helptext查看触发器 < /strong>相关信息。 exec sp_help exec sp_help stu_insert exec sp_helptext stu_insert --4) 对于下列触发器: create trigger stu_update on student instead of update as print '修改学生表' drop trigger stu_update --执行语句 update student set stu_id = '0601003' where stu_name = '小埋' --会怎么样? --消息 2627, 级别 14, 状态 1, 第 1 行 --违反了 PRIMARY KEY 约束 'PK__student__E53CAB217F60ED59'。 不能在对象 'dbo.student' 中插入重复键。 --语句已终止。 --5) 创建 < strong > DDL触发器 < /strong>,在当前数据库中不允许删除或修改表 create trigger data on database for drop_table, alter_table as print '不允许删除或修改表' rollback
以上就是本篇文章的所有内容,更多java入门知识敬请关注奇Q工具网了解详情。
推荐阅读: