欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载  

    sql存储过程和触发器.ppt

    • 资源ID:7196977       资源大小:213KB        全文页数:22页
    • 资源格式: PPT        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    sql存储过程和触发器.ppt

    第7章 存储过程和触发器,存储过程 触发器,7.1 存储过程,存储过程是一种数据库对象,将执行计划存储在数据库的服务器中。它的运行速度比独立运行同样的程序要快。 存储过程类型 创建存储过程 执行存储过程 修改存储过程 删除存储过程,7.1.1 存储过程类型,系统存储过程 存储在master数据库中,以sp_为前缀。可以在其他 数据库中对其进行调用。 用户自定义存储过程 由用户创建并能完成某一特定功能的存储过程。或 称本地存储过程。包括临时存储过程、远程存储过 程、扩展存储过程。 临时存储过程又包括局部的和全局的临时存储过 程,前者在过程名的前面带#,后者在过程名的前面 带#。全局临时存储过程对所有用户都可见。 扩展存储过程的前缀是xp_ 。,7.1.2 创建存储过程,用企业管理器创建 用T-SQL命令创建 存储过程的三个组成部分: (1)所有的输入参数以及传给调用者的输出参数; (2)被执行的针对数据库的操作语句,包括调用其他 存储过程的语句; (3)返回给调用者的状态值,以指明调用是成功还是 失败。,7.1.2 创建存储过程,T-SQL创建存储过程的基本语法格式: CREATE PROCEDURE 存储过程名称 参数定义 AS SQL语句 例7.1:创建存储过程,实现查询所有学生信息的功能。 Create proc proc_7_1 As Select * From xsqk 思考:创建存储过程,实现查询所有学生的学号、姓名、所选课程号、课程名、成绩及学分信息的功能。,7.1.2 创建存储过程,例7.2:创建存储过程proc_7_2,要求实现根据学生学号,产生不同结果,如果该学生信息不存在,则显示“无此学号的学生!”,否则返回该学生的基本信息。 Create proc proc_7_2 sno char(8) As If exists(Select * From xsqk where 学号= sno) select * From xsqk where 学号= sno Else print 无此学号的学生! 思考:创建存储过程testproc2,实现根据学生的学号,查询此学生的学号、姓名、所选课程号、课程名、成绩及学分等信息。,7.1.2 创建存储过程,说明: (1)在一个批处理中,Create procedure语句不能与其 他SQL语句合并在一起。 (2)数据库所有者具有默认的创建存储过程的权限。 (3)存储过程作为数据库对象其命名必须符合命名规 则。 (4)只能在当前数据库中创建属于当前数据库的存储过 程。 (5)一个存储过程的最大尺寸为128M。,7.1.3 执行存储过程,语句格式: EXECUTE 存储过程名称 参数值 例7.3:执行例7.1的存储过程。 exec proc_7_1 例7.4:执行例7.2的存储过程,查询学号为“02020101”学生的基本信息。 exec proc_7_2 02020101 或 exec proc_7_2 sno= 02020101,7.1.3 举例,例7.5:在学生成绩库中创建存储过程proc_7_t1,要求实现如下功能:产生计算机0203班学生的选课情况列表,其中包括学号、姓名、性别、课程号、课程名称、学分等。并调用此存储过程,显示执行结果。,create proc proc_7_t1 as Select xsqk.学号, 姓名, 性别, xskc.课程号, 课程名, xskc.学分 From xsqk, xscj, xskc Where xsqk.学号 = xscj.学号 and xscj.课程号 = xskc.课程号 and 班级 = 计算机0203,例7.6:在学生成绩库中创建存储过程proc_7_t2,要求实现如下功能:根据学生学号,如果此学生存在,则产生该生的课程成绩列表,其中包括学号、课程号、课程名称、成绩、学分等;如果此学生不存在,则显示“无此学生!”。并调用此存储过程,显示“02020101”学生的课程成绩情况。,create proc proc_7_t2 sno char(8) as if exists(select * from xsqk where 学号=sno) Select 学号,xscj.课程号,课程名,成绩,xskc.学分 From xscj, xskc Where xscj.课程号=xskc.课程号 and 学号= sno else print 无此学生!,7.1.4 修改存储过程,语法格式: ALTER PROCEDURE 存储过程名称 参数定义 AS SQL语句,例7.7:修改在例7.5中已创建的存储过程proc_7_t1,要求在显示列中加入成绩列。 alter proc proc_7_t1 as Select xsqk.学号,姓名,性别,xskc.课程号, 课程名, xskc.学分, 成绩 From xsqk, xscj, xskc Where xsqk.学号 = xscj.学号 and xscj.课程号 = xskc.课程号 and 班级 = 计算机0203,7.1.5 删除存储过程,语法格式: DROP PROCEDURE 存储过程名称 例7.8:删除存储过程proc_7_1。 drop proc proc_7_1 一般地,在用T-SQL命令创建存储过程时,总是先确定要创建的存储过程是否已经存在,如果存在,那么就删除重建。我们可以用如下语句实现: If exists( select name from sysobjects where name = proc_7_1 and type = P) drop proc proc_7_1,7.2 触发器,触发器是一种特殊类型的存储过程,当表中数据被修改时,SQL Server自动执行触发器中定义的T-SQL语句。使用触发器可以实施更为复杂的数据完整性约束。 触发器概述 创建触发器 修改触发器 删除触发器,7.2.1 触发器概述,触发器的概念及作用 触发器是一种特殊类型的存储过程,主要 通过事件进行触发执行的,是维护数据库完整 性最强大的工具,能在任何情况下维护数据库 的完整性。,7.2.1 触发器概述,触发器可以完成的任务 数据库中相关表的级联操作 不接受或回滚违反参照完整性的数据修改事务 强制执行远复杂于CHECK约束的限制约束 通过INSERT,UPDATE和DELETE语句比较数据修改前后的状态,并根据修改,执行一定的操作.,7.2.1 触发器概述,触发器的种类 AFTER触发器 只有对表执行某一操作之后,才能被触发。可以为 表的同一操作定义多个触发器,其触发次序可使用 sp_settriggerorder来完成。 INSTEAD OF触发器 并不执行其所定义的操作而仅是执行触发器本身, 对同一操作只能定义一个instead of 触发器。,7.2.1 触发器概述,利用 CREATE TRIGGER 命令创建触发器,CREATE TRIGGER trigger_name ON ( table | view ) WITH ENCRYPTION FOR | AFTER | INSTEAD OF DELETE , INSERT , UPDATE WITH APPEND NOT FOR REPLICATION AS Sql_statementn | FOR | AFTER | INSTEAD OF DELETE , INSERT , UPDATE WITH APPEND NOT FOR REPLICATION AS IF UPDATE (column) AND | OR UPDATE (column) .n | IF (COLUMNS_UPDATED () bitwise_operator updated_bitmask) comparison_operator column_bitmask .n sql_statement .n ,7.2.2 创建触发器,用企业管理器创建 用T-SQL命令创建 语法格式: CREATE TRIGGER 触发器名称 ON 表或视图 FOR | AFTER | INSTEAD OF DELETE,INSERT,UPDATE AS SQL语句,7.2.2 创建触发器,CTEATE TRIGGER 语句必须是批处理的第一个语句; 表的所有者具有创建触发器的默认权限,表的所有者 不能把该权限传给其他用户; 触发器是数据库对象,其命名必须符合命名规则。 尽管在触发器的SQL语句中可以参照其他数据库中的对 象,但是,触发器只能创建在当前数据库中。 一个触发器只能对应一个表,这是由触发器的机制决 定的。,7.2.3 修改触发器,1. 修改触发器的名字 sp_rename 触发器原名称,新名称 2. 修改触发器正文 使用企业管理器 使用T-SQL命令 语法格式:ALTER TRIGGER 触发器名称 ON 表或视图 FOR | AFTER | INSTEAD OF DELETE,INSERT,UPDATE AS SQL语句,7.2.4 删除触发器,语法格式: DROP TRIGGER 触发器名称 如果删除触发器所在的表时,系统将自动删除与该表相关的触发器。,

    注意事项

    本文(sql存储过程和触发器.ppt)为本站会员(罗晋)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开