SQL触发器(学生表,授课表,选课表)

存储器和触发器区别
触发器主要是通过事件执行触发而被执行的,而存储过程可以通过存储过程名称名字而直接调用。
当对某一表进行诸如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
 






 

  • 6
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
sql学生成绩管理系统课程设计数据库 ———————————————————————————————— 作者: ———————————————————————————————— 日期: 目 录 CHAP 1 需求分析 2 1.1需求分析 2 1.1。1 数据需求 2 1。1。2 功能描述 2 1.2数据字典 2 1.3数据流图 6 CHAP 2 概念模型设计 8 2.1 E-R模型 8 2.1.1 数据库的局部E-R图 8 2。1.2 数据库完整E-R图 9 CHAP 3 逻辑模型设计 10 3。1 E-R图向关系模型的转换 10 3。2 数据模型的规范化 11 CHAP 4 数据库的物理设计 13 4.1系统结构设计 13 4.1。1系统功能模块 13 4。1。2管理员功能模块 13 4。1。3用户功能模块 15 CHAP 5 数据库的实施 16 5。1 创建数据库 16 5。1。1 创建 16 5。1。2 创建索引 17 5.1。3 创建触发器 18 5.2组织数据入库 19 CHAP 6 数据库的运行于维护 21 设计心得 22 参考文献 23 学生成绩管理系统数据库 CHAP 1 需求分析 1.1需求分析 高校学生的成绩管理工作量大、繁杂,人工处理非常困难。学生成绩管理系统借助于 计算机强大的处理能力,大大减轻了管理人员的工作量,并提高了处理的准确性。学生成 绩管理系统的开发运用,实现了学生成绩管理的自动化,不仅把广大教师从繁重的成绩管 理工作解脱出来、把学校从传统的成绩管理模式解放出来,而且对学生成绩的判断 和整理更合理、更公正,同也给教师提供了一个准确、清晰、轻松的成绩管理环境。 1。1.1 数据需求 能够进行数据库数据定义、数据操纵、数据控制等处理功能,进行联机处理的相应 间要短。 1。1。2 功能描述 具体功能应包括:系统应该提供课程安排数据的插入、删除、更新、查询;成绩的添 加、修改、删除、查询,学生基本信息查询的功能。 1。2数据字典 1)课程信息(class information): |课程号(cno) char(10) primary key 定义为主键 |课程名cname) char(10) 非空 |教师号(teano) char(10) 非空 " 学分(credit) char(4) 非空 2学生信息(student information): |学号(sno) char(10) primary key 定义主键 "姓名(sname) char(10) 非空 "性别(ssex)char(2) 非空 |年龄(sage) char(2) 非空 |专业(major) char(10) 非空 |系别(depart) char(10) 非空 3)成绩信息(score information): |学号(sno) char(10) primary key 定义主键 |课程号(cno)char(10) 非空 |成绩(degree)char(10) 非空 |课程名( cname)char(10) 非空 1。3数据流图 顶层图 管理员信息数据流图 总数据流图 CHAP 2 概念模型设计 2。1 E—R模型 2.1.1 数据库的局部E-R图 概念结构设计阶段是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽 象,形成一个独立于具体DBMS的概念模型. 设计教室管理数据库包括班级、教室、课程、三个关系。 E-R图如下 课程信息图 成绩图 学生信息 2。1。2 数据库完整E—R图 CHAP 3 逻辑模型设计 逻辑结构设计阶段 E- R图向关系模型转化要解决的问题是如何将实体型和实体间的联系转化为关系模式,如何 确定这些关系模式的属性和码。 设计学生成绩管理数据库,包括课程、学生、教成绩三个关系, 其关系模式对每个实体定义的属性如下: 课程信息:(课程号,课程名,教师号,学分) 此为联系"课程信息"所对应的关系模式。课程名为该关系的候选码。 学生信息:(学号,姓名,性别,年龄,专业,系别) 此为联系"学生信息"所对应的关系模式。学号为该关系的候选码。 成绩:(学号,课程号,课程名,成绩) 此为联系"输入"所对应的关系模式.题目编号、管理号为该关系的候选码 数据库包含3个,即课程信息(class information),学生信息(student information),成绩信息(score information)。 3.2 数据模型的规范化 )课程信息图 2。)学生信息图 )学分信息图 CHAP 4 数据库的物理设计 4.1系统结构设计 4.1。1系统功能模块 CHAP 5 数据库的实施 5.1 创建数据库 create database stuDB 5.1.1 创建 在此学生

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值