SQL Server中触发器与约束的应用比较.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQL Server中触发器与约束的应用比较

ISSN 1009-3044 E—mail:jsh@cccc.net.CB ComputerKnowledgeandTechno~gy电脑知识与技术 http://www.dnzs.net.cn Vo1.8,No.1,January2012 Teh+86-551-5690963 5690964 SQLServer中触发器与约束的应用比较 高水娟 (南京交通职业技术学院 电子信息工程系,江苏南京211188) 摘要:SQLServer提供了两种主要机制来强制执行业务规则和数据完整性 :约束和触发器。约束主要用于确保输入到列中的数据满 足特定的条件。触发器是一种特殊类型的存储过程,3-表中的数据发生更新时将 自动调以响应insert、update、delete语句。 关键词:约束;触发器;数据完整性 中图分类号:TP3l1 文献标识码:A 文章编号:1009—3044(2012)01—0003—02 SQLServerTriggersandConstraintsintheApplicationofComparison GAOShui-juan Abstract:SQLServerprovidestWOmainmechanismstOenforcebusinessrulesanddataintegrity:constraintandtrigger.Tiemainisused tOensurethattheinputtOthedatainthecolumnsatisfycertainconditions.Triggerisaspecialprocedure,whenthedatainthetableisup- datedautomaticallyadjustedinresponsetOinsert,update,deletestatement. Keywords:constraint;trigger;datainte ty SQLServer提供了两种主要机制来强制执行业务规则和数据完整性 :约束和触发器。约束主要被用于强制数据的完整性,约束 也能提供比触发器更好的性能。然而,在所能完成的操作,以及完成工作时所能使用约束是有限制的。触发器则常被用于验证业 务规则,或是更复杂的数据验证,然后可以对数据库的其他地方的数据完成更深入的更新。约束只能对其所在表中的数据,或是在 设计时输入的特定数据进行验证。这同触发器形成对比,触发器可以跨越数据库甚至服务器 ,可以对任何在设计时设置的数据,或 从任何表上的其他行为所收集的数据进行检查。如果所需要的访问权限被给予所有包含的对象 ,就可以使用触发器的这些功能。 有时候当触发器要进行的是一项非常简单的验证任务时 ,在构建约束和触发器之间区别就很细微。在这种情况下 ,如果要处 理的是有关数据完整性的内容,则使用约束 ,这比使用触发器可以提供更好的性能。如果该对象是针对业务规则而被构建,并且可 能需要复杂的验证 ,需要处理多个数据库或服务器 ,或是要相关的错误处理 ,那么就应该构建触发器。例如,如果需要针对一个表 上的操作 (更新,删除等)结果,对另一个数据库中的表进行更改,则必须使用触发器。如果从生产数据库中,对另外的数据库保持 审核捕获,就会遇到这种情况。如果要做的事情很简单,如对数据域进行验证 ,看看其中所包含的值是否在一个指定的范围内,这 时使用约束就足够了。 约束本质上是SQLServer放置在列上的一种检查,用以确保输入到列中的数据满足特定的条件。这样可以防止输入错误的数据, 从而避免数据不一致。如为学生信息表student中的性别字段sex添加检查约束,要求性别字段的值只能是男或女。程序如下: 一 假定数据库sdb、学生信息表student已建立 usestudb go altertablestudent addconstraintck — sexcheck(sex=’男’orsex--’女’) 若在性别字段插入其他的值,即会发出警告,如图1所示。 触发器的应用以学生成绩管理系统为例,现假定该系统的 数据设计需要两张表 :学生信息表 (student)存放学生的基本信 息,学生成绩表 score)存放学生的成

文档评论(0)

aqlsxc66163 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档