- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十章 触发器
* 触发器定义在特定的表上,与表相关 自动触发执行 不能直接调用 是一个事务(可回滚) 什么是触发器 3-3 * 触发器的类型 DELETE 触发器 INSERT 触发器 UPDATE 触发器 * 触发器触发时: 系统自动在内存中创建deleted表或inserted表 只读,不允许修改;触发器执行完成后,自动删除 inserted 表 临时保存了插入或更新后的记录行 可以从inserted表中检查插入的数据是否满足业务需求 如果不满足,则向用户报告错误消息,并回滚插入操作 deleted 表 临时保存了删除或更新前的记录行 可以从deleted表中检查被删除的数据是否满足业务需求 如果不满足,则向用户报告错误消息,并回滚插入操作 inserted 和deleted 表2-1 * inserted 和deleted 表2-2 修改操作 inserted表 deleted表 增加(INSERT)记录 存放新增的记录 ------ 删除(DELETE)记录 ----- 存放被删除的记录 修改(UPDATE)记录 存放更新后的记录 存放更新前的记录 inserted表和deleted表存放的信息 * 创建触发器的语法: 如何创建触发器 CREATE TRIGGER trigger_name ON table_name [WITH ENCRYPTION] FOR [DELETE, INSERT, UPDATE] AS T-SQL语句 GO WITH ENCRYPTION表示加密触发器定义的SQL文本 DELETE, INSERT, UPDATE指定触发器的类型 * INSERT触发器 transInfo cardID transType transMoney 1001 0002 1001 0002 存入 300 存入 500 inserted cardID transType transMoney 1001 0001 支取 200 transInfo cardID transType transMoney 1001 0002 1001 0002 存入 300 存入 500 1001 0001 支取 200 插入记录行 触发insert触发器。向inserted表中插入新行的副本 触发器检查inserted表中插入的新行数据,确定是否需要回滚或执行其他操作 INSERT触发器的工作原理: * INSERT 触发器示例 3-1 问题: 解决上述的银行取款问题:当向交易信息表(transInfo)中插入一条交易信息时,我们应自动更新对应帐户的余额。 分析: 在交易信息表上创建INSERT触发器 从inserted临时表中获取插入的数据行 根据交易类型(transType)字段的值是存入/支取, 增加/减少对应帐户的余额。 * -------关键代码------ CREATE TRIGGER trig_transInfo ON transInfo FOR INSERT AS DECLARE @type char(4),@outMoney MONEY, @myCardID char(10),@balance MONEY SELECT @type=transType,@outMoney=transMoney, @myCardID=cardID FROM inserted IF (@type=支取) UPDATE bank SET currentMoney=currentMoney-@outMoney WHERE cardID=@myCardID ELSE UPDATE bank SET currentMoney=currentMoney+@outMoney WHERE cardID=@myCardID ….. GO INSERT 触发器示例 3-2 从inserted表中获取交易类型、交易金额等 根据交易类型,减少或增加对应卡号的余额 * INSERT 触发器示例 3-3 * transInfo cardID transType transMoney 1001 0002 1001 0002 存入 300 存入 500 1001 0001 支取 200 DELETE触发器 transI
您可能关注的文档
最近下载
- 第五版-FMEA-新版FMEA【第五版】.pptx
- 核酸的鉴定与保存课件.ppt VIP
- 2024AI Agent行业研究报告.pptx
- 党组书记带头严守政治纪律和政治规矩维护党的团结统一方面2024年度民主生活会对照检查材料.doc VIP
- 2024年郑州市政集团有限公司招聘工作人员13名招聘笔试备考试题及答案解析.docx
- 江苏省扬州市2024_2025学年高二英语上学期期末考试试题.doc VIP
- 英博尔MC3526^3528系列低压交流控制器产品说明书.pdf VIP
- 心理健康先进个人事迹材料【五篇】.pdf VIP
- 中国共产党发展历史中国共产党发展历程.pptx VIP
- 放射安全防护培训.ppt VIP
文档评论(0)