




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库存储过程与触发器数据库存储过程与触发器第1页/共44页2存储过程的优点存储过程的优点存储过程一旦执行一次后,其执行的计划就会驻留在计算机的高速缓冲存储器中。其后对同一个存储过程的调用就可以直接利用编译后在高速缓存中的二进制形式来完成操作。可以在单个存储过程中执行一系列SQL语句,因而可以用于设计、封装企业的功能模块。应用程序使用相同的存储过程进行操作,确保了在数据访问、操纵的一致性。第2页/共44页3使用存储过程的注意事项使用存储过程的注意事项在命名自定义存储过程时避免与系统存储过程名相同。存储过程最多能够支持32层的嵌套。命名存储过程中的标识符时,长度不能超过128个字符。存储过程中参
2、数的个数不能超过2100。第3页/共44页图8-1新建存储过程对话框第4页/共44页图8-2用于查询学生信息的存储过程第5页/共44页图8-3“语法检查成功”的提示对话框当存储过程中没有语法错误后,可以单击【确定】按钮来 保存自定义的存储过程。第6页/共44页其中:存储过程名称 必须符合标识符命名规则,而且对于数据库以及所有者命名必须唯一。一个完整的命名不能超过128个字符。第7页/共44页CREATE PROCEDURE proc_bjrs AS SELECT DISTINCT(班级表班级表.班级编号班级编号),班级表班级表.班级班级 名称,名称, 人数人数=COUNT(学生基本信息表学生基
3、本信息表.学号学号) FROM 学生基本信息表学生基本信息表,班级表班级表 WHERE 班级表班级表.班级编号班级编号=学生基本信息表学生基本信息表.班级编班级编号号 GROUP BY 班级表班级表.班级编号班级编号,班级表班级表.班级名称班级名称GO在查询分析器中执行以上命令后,然后执行该存储在查询分析器中执行以上命令后,然后执行该存储过程过程EXECUTE proc_bjrs,运行结果如图,运行结果如图8-4所示。所示。第8页/共44页图8-4 检索现有班级以及人数第9页/共44页CREATE PROCEDURE proc_bjcx bjbh VARCHAR(8)AS SELECT * F
4、ROM 学生基本信息表 WHERE 班级编号=bjbhGO其中参数bjbh用于接收班级编号,在实际调用中根据该参数将会返回一个结果集。例如,EXECUTE proc_bjcx 20051003,将会显示班级编号为20051003的学生信息。运行结果如图8-5所示第10页/共44页图8-5 用于传递班级编号的存储过程第11页/共44页图8-6 【存储过程属性】对话框第12页/共44页第13页/共44页图8-7 弹出菜单中的【重命名】命令重新输入存储过程的名称后,按下回车键完成修改。第14页/共44页第15页/共44页第16页/共44页第17页/共44页图8-8 【除去对象】对话框第18页/共44
5、页第19页/共44页第20页/共44页3触发方式触发方式 触发器的触发方式可以分为后触发和替代触发两种方式。后触发:指能够引发触发器的修改操作在完成之后才执行触发器的行为方式。创建该类触发器,需要使用AFTER关键字或者FOR关键字。第21页/共44页8.2.3 创建触发器创建触发器可以使用企业管理器以及CREATE TRIGGER语句两种方式来创建触发器。1使用企业管理器创建触发器使用企业管理器创建触发器打开企业管理器,在控制台根目录下依次展开服务器组、服务器节点、数据库节点。选择某一个数据库,并双击【表】节点,在右侧窗口的列表中选择其中的一张表。右击所选中的表,在弹出的下拉菜单中选择【所有
6、任务】,并继续选择级联菜单中的【管理触发器】命令,将打开图8-9所示的【触发器属性】对话框。第22页/共44页图8-9 【触发器属性】对话框第23页/共44页第24页/共44页第25页/共44页第26页/共44页第27页/共44页图8-10 一个DELETE类型的触发器【例例8-6】在数据库XSCJ中设计一个触发器,该触发器能够保证在学生基本信息表中添加新的纪录时,新学生的班级编号必须已经存在于班级表中。第28页/共44页USE XSCJGOCREATE TRIGGER insert_xs ON 学生基本信息表AFTER INSERTAS IF EXISTS ( SELECT * FROM I
7、NSERTED WHERE 班级编号 IN (SELECT 班级编号 FROM 班级表) ) PRINT 添加成功! ELSE BEGIN PRINT 班级编号与现有的班级不符! ROLLBACK TRANSACTION END第29页/共44页 图8-11 一个INSERT类型的触发器 第30页/共44页图8-12 添加操作被取消第31页/共44页第32页/共44页图8-13 【触发器】属性对话框第33页/共44页第34页/共44页第35页/共44页图8-14 修改del_bj触发器3使用使用DROP TRIGGER语句删除触发器语句删除触发器移除触发器时,与触发器有关的信息将从sysobjects和syscomments系统表中删除。可以通过删除触发器或删除表两种方式移除触发器。删除表时,将除去所有与表相关联的触发器。第36页/共44页【例8-8】删除触发器del_bj以及insert_xs。在查询分析器中运行如下命令:USE XSCJGODROP TRIGGER del_bj , insert_xs运行结果如图8-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 施工工艺技术优化方案
- 土地永久转让的合同范本7篇
- 照明负荷计算与电气设计方案
- 数字化时代高校档案管理流程优化研究
- 情境教学法在初中数学课堂的应用
- 初中历史论述题试题及答案
- 2025潮汕话考试真题及答案
- 初中物理科普技术试题及答案
- 2025常州b类考试真题及答案
- 2025插班考试真题及答案
- 2025年学历提升-成人高考-专升本-成人高考专升本(法学类)历年参考题库含答案解析(5套)
- 2025年止血技术理论知识考试试题及答案
- ECMO护理进修汇报
- 2025年(完整版)(高级)政工师理论考试题库与答案
- 首钢职务职级管理办法
- 建筑施工职业健康与安全防护指南
- 2025国家保安员资格考试题库及答案
- 2025年黑龙江省齐齐哈尔市中考英语试卷
- 跨境电商股权分配协议范文
- 2025年深圳中考化学试卷真题(含答案)
- 2025至2030招投标行业产业运行态势及投资规划深度研究报告
评论
0/150
提交评论