- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2 触发器的方式与分类 2.1 “Instead of”触发器 “Instead of”触发器在执行真正“插入”之前被执行。除表之外,“Instead of” 触发器也可以用于视图,用来扩展视图可以支持的更新操作。 “Instead of”触发器会替代所要执行的SQL语句,言下之意就是所要执行SQL并不会“真正执行” 2 触发器的方式与分类 2.2 “After”触发器 “After”触发器在Insert、Update或Deleted语句执行之后被触发。“After”触发器只能用于表。 “After”触发器主要用于表在修改后(insert、update或delete操作之后),来修改其他表 2.2 “After”触发器 3. Inserted和Deleted表 SQL Server为每个触发器都创建了两个专用表:Inserted表和Deleted表。 这两个表由系统来维护,它们存在于内存中而不是在数据库中,可以理解为一个虚拟的表。 这两个表的结构总是与被该触发器作用的表的结构相同。 触发器执行完成后,与该触发器相关的这两个表也被删除。 Deleted表存放由于执行Delete或Update语句而要从表中删除的所有行。 Inserted表存放由于执行Insert或Update语句而要向表中插入的所有行。 4. 触发器的执行过程 如果一个Insert﹑update或者delete语句违反了约束,那么这条SQL语句就没有执行成功,因此“After”触发器也不会被激活。 “Instead of” 触发器可以取代激发它的操作来执行。它在Inserted表和Deleted表刚刚建立,其它任何操作还没有发生时被执行。因为“Instead of” 触发器在约束之前执行,所以它可以对约束进行一些预处理。 5. 创建触发器 6. 修改触发器 7.删除触发器 8. 查看数据库中已有触发器 8.1 查看数据库中所有触发器 select * from sysobjects where xtype=TR 8.2 查看单个触发器 exec sp_helptext 触发器名 9. “Instead of”相关示例 两张表:学生(学号 int, 姓名 varchar)、借书记录(学号 int, 图书编号 int) 实现功能:在删除学生表时,如果该学生仍有借书记录(未还)则不能删除 10. “After”触发器 10.1 在“订单”表中建立触发器,当向“订单”表中插入一条订单记录时,检查“商品”表的货品状态“状态”是否为1(正在整理),则不能往“订单”表加入该订单。 订单的insert动作 将不会被提交 10. “After”触发器 10.2 在“订单”表建立一个插入触发器,在添加一条订单时,减少“商品”表相应的货品记录中的库存。 10. “After”触发器 10.3 在“商品”表建立删除触发器,实现“商品”表和“订单”表的级联删除。 10. “After”触发器 10.4 在“订单”表建立一个更新触发器,监视“订单”表的“订单日期”列,使其不能被“update”. 对订单日期的update 动作将不会被提交 10. “After”触发器 10.5 在“订单”表建立一个插入触发器,保证向“订单”表插入的货品必须要在“商品”表中一定存在。 订单的insert动作 将不会被提交 10. “After”触发器 10.6 “订单”表建立一个插入触发器,保证向“订单”表插入的货品信息要在“订单日志”表中添加 11. 带变量的触发器 为“员工表”创建一个名为“修改姓名”的后触发器,当修改某个员工姓名时,需要把“销售表2006”的“销售员”、“进货表2006”的“收货人”同时进行全部修改,实现“员工表”和“销售表2006”“进货表2006”的级联修改。 USE diannaoxs /*数据库名*/ IF exists ( SELECT name FROM sysobjects WHERE name=修改姓名 AND type=tr) DROP TRIGGER 修改姓名 GO CREATE TRIGGER 修改姓名 ON 员工表 after update AS DECLARE @xm1 varchar(8) , @xm2 varchar(8) SELECT @xm1=姓名 FROM deleted /* -- 从deleted表得到被删除的原姓名*/ SELECT @xm2=姓名 FROM inserted
您可能关注的文档
- 2018年1226个税培训辅导课件(扣缴义务人加纳税人版).pptx
- 心梗并发症的超声表现.ppt
- 数据处理和程序设计@第2章-Excel图表应用.pptx
- 初中物理知识点总结练习—第十三章内能.docx
- 大学计算机基础2019.docx
- C++课件第3章:函数.pptx
- 第二章-三相变压器.ppt
- 数据处理和程序设计@第6章-对象.pptx
- 大学生励志讲话:自强不息,厚德载物.doc
- 暑假教师培训课件心得体会精选【三篇】.doc
- 佛山市顺德区医务人员2013年医学三基知识考试题(非术科护理类).doc
- (一)“泰山国学小名士”经典诵读电视大赛初选试题库.doc
- 重庆市梁平区2018-2019年七年级上期末数学试题(Word版-含答案解析).docx
- 江西省上饶市“山江湖”协作体高一下学期第一次月考地理考试试题(统招班).doc
- 第2课-黑白世界-课件(点-线-面).ppt
- 都市言情小 说通用情节.doc
- 九年级道德和法治下册第三单元承担社会责任第9课责任促我成长第1框角色和责任课件陕教版.pptx
- 高校自主招生模拟测考试试卷物理B卷——参考 答案(详解版).docx
- 2016年第二十一届“华罗庚金杯”少年数学邀请赛初赛考试试卷(小中组a卷).doc
- 第二节-化学反应速率.ppt
最近下载
- 物业安全生产培训PPT课件.pptx VIP
- 1.2掌握广西壮族服饰元素及特点(课件)《广西壮族服饰文化与创意设计》.pptx VIP
- 交流电气装置的接地规范.pdf VIP
- 创伤(救治)理论知识考核试题及答案.pdf VIP
- 47_DLT 584-2017《3kV~110kV电网继电保护装置运行整定规程》.pdf VIP
- 基于FAP启动子的表达载体及心肌纤维化药物筛选方法.pdf VIP
- 建设工程项目管理规范材料.doc VIP
- 中国设施农业的减碳增汇效应分析——基于1828个县域面板数据的实证研究.pdf VIP
- 小学体育与健康沪教版(五四学制)(2024)二年级全一册《第四课 运动场上我最棒》教学设计 .pdf
- GB50270-2010 输送设备安装工程施工及验收规范.docx VIP
文档评论(0)