概述
存储器和触发器区别:
触发器主要是通过事件执行触发而被执行的,而存储过程可以通过存储过程名称名字而直接调用。
当对某一表进行诸如UPDATE、INSERT、DELETE这些操作时,SQLSERVER就会自动执行触发器所定义的SQL语句
,从而确保对数据的处理必须符合这些SQL语句所定义的规则。
表创建:
学生表:
授课表(教师表-课程表):
选课表:
在这里注意选课表是不需要添加外键约束的,而是用触发器来实现数据库完整性。
触发器设置:
1.当向选课表中插入数据时,检查该行的学号列在学生表中是否存在,授课号列在授课表中是否存在,
如有一项不成立,则不允许插入,并显示存错信息“学生表没有该学号信息或授课表没有该课程号,请仔细检查”
备注: 1.raiserror 函数用于返回用户定义的错误信息并设置系统标志。第2个参数是错误的严重级别;第3个参数表示有关
错误调用状态的信息. 2.rollback表示回滚,不允许插入新行
2.我们可以这样设想,当某个学生退学不读书了,那么他在选修表中的信息也应该被删除.现创建一个触发器,名为"Delete_sc".如果要删除学生表中的记录,则与该记录学号对应的选修表中的选修记录也一起删除.插入一条学生信息插入该学生的选课信息
现在假设学号为S004的学生退学了,在Students表中删除该学生所有信息
在选课表中该学生的选课记录也随学生表信息删除随之删除
触发器的查看:
--用于查看触发器的一般信息。
sp_help [触发器名称]
--用于显示存储过程的源代码
sp_helptext [触发器名称]
--用于查看指定触发器所引用的表或者指定的表涉及的所有触发器。格式如下:
sp_depends [触发器名称]
sp_depends [表名]
修改触发器:
使用 alter trigger命令修改触发器
例:把触发器Delete_sc 修改为当删除课程表中的记录时,显示"记录已被删除,触发器起到作用"注:alter trigger的触发器必须先create,不能alter一个不存在的触发器
重命名触发器
--把触发器 Delete_sc 重命名为"Delete_ssc"
sp_rename Delete_sc,Delete_ssc
删除触发器
--删除触发器"Delete_ssc" drop trigger Delete_ssc
最后
以上就是淡定烤鸡为你收集整理的SQL触发器(学生表,授课表,选课表)的全部内容,希望文章能够帮你解决SQL触发器(学生表,授课表,选课表)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复