- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQL Server触发器技术应用
SQL Server触发器技术应用摘 要: 本文介绍了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.学号
您可能关注的文档
- 2010年中考佳作分类巡展(一).doc
- 2010年中考佳作分类巡展(三).doc
- 2010年中考佳作分类巡展(二).doc
- 2010年中考佳作分类巡展(五).doc
- 2010年中考全命题作文写作指导.doc
- 2010年中考佳作分类巡展(四).doc
- 2010年中考全命题作文写作指导_0.doc
- 2010年中考图表信息专题实战演练.doc
- 2010年中考化学模拟试题(十).doc
- 2010年中考数学全真模拟试题.doc
- Student Compositions by Stars等2则.doc
- The Blind Man and the Deaf Man(盲人及聋子).doc
- The Dragonfly and the Monkey(蜻蜓及猴子).doc
- The Eagle and the Donkey(鹰及驴).doc
- the fact三个重要辅助用法.doc
- The Fire on the Hill(小山上火).doc
- The Mosquito Fought the Lion(蚊子斗狮子).doc
- The South Korean stars are fond of study 等5则.doc
- The Story about a Leather Wallet(一个皮夹故事).doc
- The Theatre及老外谈戏剧.doc
最近下载
- 金属工艺学 全套课件.ppt VIP
- 外研版(三起)(2024)三年级下册英语Unit 4《What’s your hobby?》第1课时教案 .pdf VIP
- Unit 4 What's your hobby 第三课时教案 2024-2025学年度 外研版英语三年级下册.docx VIP
- 老年患者麻醉管理专家共识.pptx
- 景区运营管理合作协议.doc VIP
- HGT21629-2021管架标准图图集标准.docx VIP
- 保健食品要掌握的全部基本知识【58页】.pptx VIP
- MDCG 2020-7 上市后临床随访 (PMCF) 计划模板中文版.docx VIP
- 基坑土方回填施工策划方案.doc VIP
- 半导体材料课件课件.pptx VIP
文档评论(0)