SQL Server触发器技术应用

来源 :考试周刊 | 被引量 : 0次 | 上传用户:crowboy2000
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要: 本文介绍了SQL Server触发器的概念和类型,总结了SQL Server触发器在程序设计中的应用,并给出了SQL Server触发器的应用实例。
  关键词: SQL Server 触发器 应用实例
  
  1.引言
  在大型关系数据库设计中,如何保证数据库中的数据完整性是一项重要的研究内容。数据完整性是指存储在数据库中的数据的一致性。主要体现在实体完整性、域完整性、参照完整性和用户的自定义完整性等方面。虽然从最基本的数据类型到多种形式的约束条件,都提出了数据完整性的解决方案,但这些方法较为简单,不能解决比较复杂的数据完整性问题。而触发器作为一种高级的技术,可以轻松地解决任何有关保证数据完整性的问题。
  触发器一旦被定义,就存在于后台数据库系统中,并会往表中插入记录、更改记录或者删除记录时,被自动地隐式执行,从而使得它的设计既与前台的平台无关,又免除了前台相关的数据操作设计。因此,触发器可以用来对表实施复杂的完整性约束,当触发器所保护的数据发生改变时,触发器会自动被激活,从而防止对数据的不正确修改[1]。
  2.触发器的概念
  触发器是SQL Server为应用程序开发人员提供的一种保证数据库中数据完整性的方法,它是一种特殊的存储过程,但它和一般的存储过程有本质的区别,存储过程可以由用户直接调用执行,而触发器不能被直接调用执行。触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名字而被直接调用。当对某一表进行Update,Insert,Delete操作时,SQL Server就会自动执行触发器所定义的SQL语句。
  利用触发器可以比较数据修改前和修改后的状态。通过Insert,Update语句,触发器可以提供参考数据变化的能力,这样就允许参考被触发器中修改语句影响到的记录。
  使用触发器可以维护非规范化的数据,可以使用触发器维护非正规化数据库环境中的行级数据完整性[2]。
  3.触发器的种类
  根据触发器被激活的时机不同,SQL Server中提供了两种类型的触发器:INSTEAD OF触发器和AFTER触发器。
  AFTER触发器在一个INSERT、UPDATE或DELETE语句完成之后执行,进行约束检查等动作都将在AFTER触发器被激活之前发生。AFTER触发器只能用于表。
  INSTEAD OF触发器用于替代引起触发器执行的T-SQL语句。除表之外,INSTEAD OF触发器也可以用于视图,用来扩展视图可以支持的更新操作。
  一个表或视图的每个修改动作(INSERT、UPDATE和DELETE)都可以有一个INSTEAD OF触发器,但可以有多个AFTER触发器[3]。
  4.触发器的实现
  触发器的实现离不了两个专用表:Inserted表和Deleted表。这是两个逻辑表,由系统来维护,用户不能对它们进行修改。它们存放在内存而不是数据库中。这两个表的结构总是与激活该触发器的表的结构相同。触发器执行完成后,与该触发器相关的这两个表也会被删除。
  当向触发器表中插入数据时,新的记录会增加到触发器表和inserted表中;当删除触发器表中的数据时,被删除的记录会存放到deleted表中;当更新触发器表中的数据时,相当于插入一条新记录和删除一条旧记录,此时表中原有的记录存放到deleted表中,修改后的记录插入到inserted表中。
  在创建触发器时需要制定以下内容:触发器的名称、触发器所基于的表或视图、触发器种类(AFTER或INSTEAD OF)、激活触发器的修改语句(INSERT、UPDATE和DELETE)、触发器执行的语句,用T-SQL语句创建触发器的具体语法如下[4]:
  CREATE Trigger trigger_name
  ON { table_name | view_name }
  { AFTER | INSTEAD OF }
  [INSERT,UPDATE,DELETE ]
  AS
  Sq_Statement
  5.触发器应用实例
  实例1:本例说明了触发器如何在选课表choice中维护数据的完整性。当向choice表插入一条记录时,检查该记录的学号在学生表student中是否存在,检查课程号在课程表course中是否存在,若有一项为否,则不允许插入。
  CREATE TRIGGER choice_ins_trigger
  ON choice
  FOR INSERT
  AS
  IF EXISTS(select * from inserted
  Where inserted.学号 NOT IN(select student.学号 from student)OR
  Inserted.课程号 NOT IN(select course.课程号 from course))
  BEGIN
  PRINT ″此记录无法插入!″
  ROLLBACK TRANSACTION
  END
  ELSE
  PRINT ″该记录已被插入!″
  实例2:为学生表student建立一个After Delete触发器,当要删除学生表中某个学生的记录时,相应的要把该学生在学生成绩表score中的成绩记录删除,否则会造成数据冗余。
  CREATE TRIGGER stusco_del_trigger
  ON student
  AFTER DELETE
  AS
  DECLARE @AK2 CHAR(10)
  SELECT @AK2=学号 FROM deleted
  Delete score WHERE 学号=@AK2
  RETURN
  实例3:本例说明了触发器如何强制实施业务规则。在图书管理系统中,当删除Readers表中的读者信息时,通过DELETE触发器检查该借阅者是否还有书籍尚未归还,如果有就取消删除操作(回滚事务),并返回相关提示信息。
  CREATE TRIGGER reader_del_trigger
  ON readers
  FOR DELETE
  AS
  DECLARE @data_js int
  SELECT @data_js=已借数量 FROM deleted
  IF @data_js>0
  BEGIN
  PRINT ″还有″ RTRIM(@data_js) ″本书没还。″
  ROLLBACK TRANSACTION
  END
  ELSE
  PRINT ″该读者已被删除!″
  6.结语
  本文研究了开发SQL Server 2000触发器的技术及其应用。触发器是一种非常重要的应用逻辑,它可以完成复杂的数据完整性和一致性的工作。掌握开发触发器的技术,编写出高效率的触发器逻辑,是数据库应用程序开发成功的重要保障。
  
  参考文献:
  [1]张蒲生,何升.SQL Server数据库应用技术[M].北京:清华大学出版社,2005.
  [2] 陆昌辉,吴晓华.SQL Server 2000核心技术揭密[M].北京:宇航出版社,2002.
  [3]徐晓丽.巧妙应用SQL Server触发器[J].微型电脑应用,2010.
  [4]张丹.SQL Server中存储过程与触发器技术的研究与应用[J].科技创新导报,2008.
其他文献
具有良好个性的人,一般都是充满自信、有魅力的人。因为个性本身就是一个充满神秘感和吸引力的综合体。联合国教科文组织曾在《学会生存》报告中明确指出:“应培养人的自我生存能力,促进人的个性全面和谐的发展,并把它作为当代教育的宗旨。”那么,对体育教学来讲,究竟该如何使学生的个性得到健康发展呢?  一、教师的垂范作用  体育教师应具备良好的体育专业理论知识和技能,掌握教育学、心理学、哲学、历史等多方面知识,
所谓新闻就是报纸、广播电台、电视台等新闻媒介发布的国内外的消息。泛指社会上最近发生的新鲜事情。电视新闻顾名思义就是通过电视这种媒体来传播的新闻,电视新闻节目是电
摘 要: 短跑是田径运动的基础,是速度力量型运动项目。本文分析了小学生业余短跑训练中存在的问题,提出了提高短跑专项技术能力、加强速度素质训练、专门的放松训练、加强思想教育等训练方法,旨在为小学生业余短跑训练提供参考。  关键词: 小学生 业余短跑训练 训练方法    短跑是田径运动的基础,是速度力量型运动项目。影响短跑成绩的因素很多,主要包括快速的反应能力、加速能力及最大跑速和保持速度能力。小学课
A new probability function of mining overlying strata and subsidence is put forward that has a general statistical significance based on the ideal stochastic me
期刊
体育亦称体育运动,是人们根据社会生产和生活需要,遵循人体生长发育和机能活动规律,以运动为基本手段,为增强人民体质、提高运动技术水平、丰富文化生活而进行的一种有意识、有组织的身体运动和社会运动。由此可看出,体育是一种社会文化现象,自古就是人们锻炼身体、增强体质、延长生命的重要途径。体育锻炼是促进健康最积极有效的手段,体育锻炼能缓解学习压力,调节紧张的学习节奏,提高学习效率,是走向健康、全面发展过程的
一、素质教育、体育教学的概念和基本含义  体育教学是指体育教学目的和任务的基本途径,以体育课内容为中介的师生双方在教与学两个方面的双边活动。通过身体活动与思维活动的紧密结合,教师有目的地、有计划地引导学生掌握体育的知识、技术和技能,发展身体,增加体质,培养辩证唯物主义的世界观和共产主义道德品质。在体育教学活动中,既要遵循动作技能形成的客观规律和人体机能适应能力变化的主观规律,又要遵循人体生理机能能
摘 要: 作者经过调查、分析与思考认为,改变体育教学困境的最快捷方法是学校教育中的人——教师的因素,其中包括教师的内在素养、人格力量、教学水平、艺术手段等。  关键词: 初中体育 体育低靡 成因 “阳光体育”    自北京奥运申请获准和成功举办以来,中国大地上掀起了体育热潮,“体育现象”成为社会备受关注的热议话题,一些体育项目和体坛明星被中学生推向顶礼膜拜的神位。在这样的大环境背景下,我深感困惑难
摘 要: 二十一世纪,信息技术的飞速发展使传统教育的所有方面受到革命性的挑战。从上个世纪初的无声电影、唱片应用于教育开始,现代教学媒体就成了音乐教学不可缺少的重要工具,这种新颖的教学媒体承载了大量的视听信息,无疑比粉笔加黑板具有更大的吸引力。本文探索了现代信息技术支持下音乐教学模式的需要。  关键词: 音乐教学模式 现代信息技术 需要    二十一世纪,信息技术的飞速发展使传统教育的所有方面受到革
摘 要: 在局域网中由于外网接口、IP地址等的限制,只有部分电脑才能直接连接因特网。本文介绍了如何通过双网卡共享或软件代理实现局域网所有电脑共享因特网资源。  关键词: 局域网 因特网连接 代理服务器    1?郾引言  一般实现局域网和因特网互联的方式有路由器或代理服务器两种方案。路由器硬件上需高档计算机,并安装专用软件,成本昂贵,设置复杂;代理服务器可采用普通计算机,硬件要求较低,只需安装代理
摘 要: 本文就网络课程教学平台在教学中的应用,从特点、功能介绍,以及使用优势等方面作了简要阐述,网络教学平台的使用是传统教学的有效补充,以科学、合理的实施程序和灵活、恰当的策略为保证,激发学生自主进行网上学习,全面提升学生专业素质和创新能力。  关键字: 网络 教学平台 优势    我们借助学院完善的校园网络资源搭建了石家庄邮电职业技术学院网络课程教学平台(http://learn.sjzpc.