- 1、本文档共51页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQL Server--chap10--第十章 触发器及其应用 3. 用“企业管理器” 查看触发器 10.3.1 使用触发器强制数据完整性 约束和触发器都可以用来实施数据完整性,但两者各有优势 触发器的可以包含使用 T-SQL 代码的复杂处理逻辑 触发器可以支持约束的所有功能 实体完整性应在最低级别上通过索引进行强制,这些索引或是 PRIMARY KEY和UNIQUE约束的一部分,或是在约束之外独立创建的 域完整性应通过CHECK约束来强制 引用完整性应通过FOREIGN KEY 约束来强制 以下应用场合应考虑使用触发器: 除非REFERENCES子句定义了级联引用操作,否则FOREIGN KEY约束只能以与另一列中的值完全匹配的值来验证列值 应用程序要求根据另一表中的列验证列值 应用程序要求使用自定义信息和较为复杂的错误处理 10.3.2 使用触发器强制业务规则 触发器在强制数据完整性之外,还可强制实施对CHECK约束来说过于复杂的业务规则,包括对其他表中行的状态进行检查 * 第十章 触发器及其应用 10.1.1触发器的基本概念 10.1触发器的基本概念和优点 数据库触发器是一种在基表被修改时自动执行的内嵌过程,当使用UPDATE、INSERT或DELETE命令在指定表中对数据进行修改时,用来防止对数据进行的不正确或不一致的修改 通过触发器可以把事务规则从应用程序代码移到数据库中从而确保事务规则被遵守,并能显著提高性能 10.1.2使用触发器的优点 1. 强制比CHCEK约束更复杂的数据完整性 在CHECK约束中不允许引用其他表中的列来完成检查工作,而触发器则可以引用其他表中的列来完成数据完整性的约束 进出货:存货量定购量 2. 使用自定义的错误信息 用户有时需要在数据完整性遭到破坏或其他情况下,发出预先自定义好的错误信息或动态自定义的错误信息 3. 实现数据库中多张表的级联修改 在titleauthor、sales及roysched表中对各匹配行进行定位删除 title_id列 titles表 在title_id列上定义一个删除触发器 titleauthor表 sales表 roysched表 此三列均有title_id字段 4. 比较数据库修改前后数据的状态 用户可在触发器中引用由于修改所影响的记录行 触发器 提供 访问由INSERT、UPDATE或DELETE语句引起的数据变化的前后状态 5. 维护非规范化数据 非规范数据通常是指在表中的派生的、冗余的数据值 维护非规范化数据应该通过使用触发器来实现 表的级联是指不同表之间的主外键关系,维护表的级联可通过设置表的主键与外键的关系来实现 注意区别 10.2 触发器的创建 CREATE TRIGGER [owner.]trigge_name ON [owner.]{table|view} {FOR|AFTER|INSTEAD OF} {[INSERT],[UPDATE],[DELETE]} 在触发SQL语句中指定的操作、引用级联操作和约束检查成功完成后,执行此触发器 指定执行触发器而不是执行触发SQL语句,从而替代触发语句的操作 [WITH ENCRYPTION] AS IF UPDATE(column_name) [{and|or} UPDATE(column_name)…] sql_statesments 指定执行触发器而不是执行触发SQL语句,从而替代触发语句的操作 定义触发器被触发后,将执行的数据库操作 10.2.1 INSERT触发器 例:在pubs库的authors表上创建 my_trigger1触发器,该触发器被操作INSERT所触发 USE pubs go CREATE TRIGGER my_trigger1 ON authors FOR INSERT AS raiserror(unauthorized,10,1) 当向表authors插入数据时将触发触发器,但是数据仍能被插入表中 ?INSERT INTO authors values(‘172-33-1234,White,John,408496-7223,10932Bigge Rd.,Menlo Park,CA,94025, 1) 定义触发器时指定了FOR选项,AFTER为默认值,触发器只在INSERT中指定的操作都执行后才激发,因此仍能插入数据 有没有什么办法能实现触发器被执行的同时,取消触发触发器的SQL语句的操作呢? 用INSTEAD OF关键字来实现 例:在pubs库的authors表上创建触发器my_trigger2,它被操作DELETE所触发,且要求触发触发器的DELE
您可能关注的文档
- spss上课课件第二讲数据录入及录入.ppt
- 水力学课件水力学习题课.ppt
- c课件第7章函数与模块化程序设计.ppt
- §21太阳太阳教学课件1章节.ppt
- c课件第7章数组2章节.ppt
- spss上课课件第六七讲统计图形与基本统计分析.ppt
- §21太阳太阳教学课件2章节.ppt
- c课件第8章函数2章节.ppt
- spss上课课件第三讲数据录入及整理.ppt
- c课件第9章预处理.ppt
- 2025年斜巷运输安全管理规定范本(2篇) .pdf
- 2025年新乡市事业单位重塑性改革方案 .pdf
- 2025年高速公路扩能工程建设项目策划工地标准化建设管理办法_图文 .pdf
- F202525【复试】2025年延边大学202504技术经济及管理《加试人力资源管理.pdf
- F202508【复试】2025年国防科技大学2025网络空间安全《复试F2025计算机完整版.pdf
- 2025进出口办理流程 .pdf
- 2025年后勤服务保障中心采购管理办法 .pdf
- 2025年危货运输企业安全生产管理制度汇编 .pdf
- 2025年安全生产责任制和安全生产奖惩制度(2篇) .pdf
- 2025年出勤率与绩效挂钩制度 .pdf
最近下载
- 2022-2023学年广东省中山市六年级上期末数学试卷附答案解析.docx
- NB∕T 10112-2018 -风力发电机组设备监造导则.pdf
- 外用糖皮质激的剂量使用指南.pdf
- 东风风神-A9-产品使用说明书-1.8T 旗舰型-DFM7180PC1A-东风A9使用手册201609.pdf
- 天津一中20202021学年高一上学期期末考试数学试题含答案.pdf
- 河南省郑州市2023-2024学年高二上学期期末考试 数学含答案.pdf VIP
- 清代八股文 邓云乡.doc
- 外研版新标准小学英语三起六年级上册寒假作业布置每天一练.pdf VIP
- 苏教版小学四年级上册数学期末试卷附答案【完整版】 .pdf
- 高中英语原版小说整书阅读指导《奇迹男孩》(wonder)--Part one 讲义.docx
文档评论(0)