- 1、本文档共65页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十讲 事务、自定义函数、触发器
管理触发器 删除触发器示例 代码见:delete_trigger_test.sql 问题:删除trgInsertShift触发器 第四部分 使用触发器的建议 使用触发器的建议 使用触发器的建议 1、如果约束能够实现特定的功能,则数据库最好能够采用约束而不是触发器。因为约束能够提供比较高的执行性能,而且维护的工作量也会小得多。 2、如果系统中现成的约束无法满足企业用户的需求,如功能无法满足或者提供的错误信息不够等情况,此时就需要通过触发器来完成。 3、可以利用触发器防止一些恶意或错误的记录插入、删除以及更新操作,并强制执行比CHECK约束定义的限制更为复杂的其他限制。 总结 触发器是在对表进行插入、更新或删除操作时自动执行的存储过程,触发器通常用于强制业务规则 触发器还是一个特殊的事务单元,当出现错误时,可以执行ROLLBACK TRANSACTION回滚撤销操作 触发器一般都需要使用临时表:deleted表和inserted表,它们存放了被删除或插入的记录行副本 触发器类型: INSERT触发器 UPDATE触发器 DELETE触发器 多表值函数 2.多表值函数 ?? create function 函数名(参数) ?? returns 表格变量名 table (列定义) ?? [with {Encryption | Schemabinding }] as ?? begin ??? SQL语句 return ?? end 触发器 触发器的引入 在SQL Server数据库中提供了两种主要机制来强制使用业务规则和数据完整性,他们是约束和触发器。既然都可以完成相同的事情,那触发器的优势在哪里呢?来看下面的例子 触发器的引入 问题:银行需要记录用户的交易记录并规定每次交易的提款金额不得大于700元。 先使用check约束来满足要求,并插入一条违反约束的数据进行测试,我们得到了如下的提示。 在这个提示中我们无法得知出错的具体原因,只知道和某个Check发生了冲突。 触发器的引入 下面我们用触发器来完成此功能看看有什么不同的地方 在这个提示中我们得知出错的具体原因是因为支取的金额超过了700元,是不是比刚才的提示友好了很多。 在使用约束时我们只能获得系统提供的提示,通常晦涩难懂,如果想自定义出错提示只好使用触发器。 难道这就是我要使用触发器的唯一理由吗?我们再往下看 触发器的引入 问题发生了变化:银行现在要求支取时不能超过700元,在存储时没有限制。 大家想一想我们还能用check约束来实现吗? 触发器的引入 要解决刚才的问题使用约束已经不能实现了,需要使用触发器,这也是触发器的最大优势,可以很灵活的控制业务规则,下面我们就来看看什么是触发器 第一部分 识别触发器 1.1什么是触发器 1.2触发器分类 1.3DML触发器的特性 1.5DML触发器的类型 1.4inserted和deleted表 识别触发器 1.1什么是触发器 触发器是一种特殊类型的存储过程,该存储过程对应特定的事件。 即当事件发生时将会激活相应的触发器并执行存储过程 识别触发器 1.2 触发器的分类 数据操作语言(DML)触发器 数据定义语言(DDL)触发器 识别触发器 数据定义语言(DDL)触发器 DDL 触发器是一种特殊的触发器,在SQL Server2005引入,它
您可能关注的文档
最近下载
- 《海尔平台化建设》ppt教案模板.ppt
- 九年级数学试卷讲评课.pptx
- 安徽凤阳经济开发区环境影响区域评估报告(环境影响区域评估+环境标准).pdf
- 危险货物道路输运押运人员从业资格考试模拟题及答案.doc VIP
- 八年级信息技术(下)Python期末考试试题及答案.docx VIP
- 小学英语五年级The little horse crosses the river课件.pptx
- 农行反洗钱与制裁合规知识竞赛考试题库大全-下(判断题).pdf VIP
- 甄嬛传英文剧本.docx
- 2022河南省家政服务业职业技能大赛母婴护理项目技术工作文件.pdf
- 2022八年级下学期信息技术期末考试(python).docx VIP
文档评论(0)