SQL Server2000触发器在教务管理系统中的应用.docx

上传人:rrsccc 文档编号:8908227 上传时间:2021-01-24 格式:DOCX 页数:2 大小:12.44KB
返回 下载 相关 举报
SQL Server2000触发器在教务管理系统中的应用.docx_第1页
第1页 / 共2页
SQL Server2000触发器在教务管理系统中的应用.docx_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《SQL Server2000触发器在教务管理系统中的应用.docx》由会员分享,可在线阅读,更多相关《SQL Server2000触发器在教务管理系统中的应用.docx(2页珍藏版)》请在三一文库上搜索。

1、SQL Server2000触发器在教务管理系统中的应用摘要:本文通过对SQL Server2000触发器在教务管理系统中典型应用的探索,阐述了触发器的功能作用和如何正确有效的使用SQL Server2000的触发器。关键词:SQL Server;触发器;教务管理系统在学校的教务管理系统中,广泛的采用了SQL Server2000这个微软的企业级关系数据库。SQL Server2000触发器在教务系统中被经常用到。 1对触发器工作机制的思考 触发器实际上是一段存储在数据库里的固定代码,当满足一定条件的时候被DBMS自动调用执行,从而实现预先设定好的功能。对表的各种更新操作可以自动触发这段代码。

2、在触发器内部SQL Server2000给我们设置了两个逻辑表deleted和inserted,分别用来临时存储更新操作前后影响到的那些个记录的旧值和新值。这是编写触发器完成教务管理各个操作环节的重要工具。 2对教务管理系统的分析 教务管理系统主要功能为支持学校教学管理工作的全过程,优化学院有限的教学资源。一个典型的教务管理系统中拥有众多表即关系。而最为重要的表有: * 学生信息表Stuinfo(Sno,Sname,Ssex,Sbirthday,Sdept) 其中Sno为学号,Sname为姓名,Ssex为性别,Sbirthday为生日,Sdept为所在系。 * 课程表Courseinfo(Cn

3、o,Cname,Ccride,Ctype) 其中Cno表示课号,Cname表示课程名称,Ccride表示学分,Ctype表示课程类型。 * 学生成绩表SC(Sno,Cno,Sscore) 其中Sno,Cno意义参考上表,Sscore表示该门课程期末成绩。 3触发器在教务管理系统中的应用探索 在使用教务管理系统进行的日常教学管理工作中,学校的各个部门会经常遇到下面这些典型的情况: (1) 每年新生入学,相关人员将学生基本信息存入Stuinfo表中的同时,出于安全性的考虑,也要在相应的日志中进行记录,这个日志表定义为Instlog(Insttime,Instuser,Instsno),其中Inst

4、time表示添加日期,Instuser表示操作者,Instsno表示添加的学号。下面给Stuinfo表创建触发器: CREATE TRIGGER Tr_stuinfo_inst ON Stuinfo FOR INSERT -设置插入触发器 AS BEGIN -批量插入语句,用到了inserted逻辑表 INSERT Instlog SELECT getdate(),user_name(),Sno FROM inserted END 以上触发器在我们对Stuinfo表添加新学生的时候级联添加日志记录信息到Instlog表。 (2) 在日常的工作中,学生信息登记错误的情况多有发生。我们设定在学生处

5、的学生信息表和教务处的学生信息表分别叫Stuinfo1和Stuinfo2,而只有姓名字段可能被更改。下面在Stuinfo1上设置Update触发器来统一两表的数据。 CREATE TRIGGER Tr_stuinfo1_upt ON Stuinfo1 FOR UPDATE -设置更新触发器 AS BEGIN DECLARE sname varchar(20),sno int -首先获得更新的学生学号和更新后的姓名 SELECT sname=Sname,sno=Sno FROM inserted -级联更新Stuinfo2表 UPDATE Stuinfo2 SET Sname=sname WHE

6、RE Sno=sno END 以上代码是利用触发器实现了教务管理系统中的一个级联更新操作。 (3) 由于各种原因,学生退学了,这时需要删除Stuinfo表中对应的该学生的信息,而成绩表SC中对应的成绩信息同步也需要删除,于是我们需要定义如下触发器: CREATE TRIGGER Tr_stuinfo_inst ON Stuinfo FOR DELETE -设置插入触发器 AS BEGIN DELETE FROM SC WHERE Sno in(SELECT Sno FROM deleted) -以上语句用刀了逻辑表deleted,用来获得删除的学生的学号信息 END 以上代码实现了触发器的级联删除。 以上案例只是触发器在教务管理系统中的部分典型应用,在其他系统中的应用情形也大致如此。 参考文献: 【1】 刘卫国 严晖 数据库技术与应用SQL Server清华大学出版社 2007年1月第一版 【2】 贺亚茹 用触发器解决变异表数据处理问题 民办教育研究2010 年 04期 【3】 魏锦茂 SQL触发器在数据库设计中的应用 电脑编程技巧与维护 2010 年 04期

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1