存储过程触发器和游标.ppt

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
存储过程触发器和游标.ppt

数据库原理与应用教程 ―SQL Server 第11章存储过程、触发器和游标 引言 在SQL Server 2005应用操作中,存储过程、触发器和游标都扮演着相当重要的角色。 存储过程是SQL语句和可选流程控制语句的预编译集合,它以一个名称存储并作为一个单元处理,能够提高系统的应用效率和执行速度。 触发器是一种特殊类型的存储过程。当有操作影响到触发器保护的数据时,触发器就会自动触发执行。它可以扩展SQL Server完整性约束默认值对象和规则的完整性检查逻辑,实施更为复杂的数据完整性约束。 游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。 内容 11.1 存储过程 11.2 触发器 11.3 游标 11.1 存储过程 1. 概述 2. 存储过程的类别 3. 创建和执行存储过程 4. 查看、修改和删除存储过程 1. 概述 1.概述----什么是存储过程 ① 存储过程的概念 一组编译在单个执行计划中的T-SQL语句,它将一些固定的操作集中起来交给SQL Server数据库服务器完成,以完成某个任务。(管理任务或应用复杂的业务规则)。 是存储在服务器上的 T-SQL 语句的命名集合 是封装重复性任务的方法 支持用户声明变量、条件执行以及其他强有力的编程特性 1.概述----什么是存储过程 SQL Server 中的存储过程可以 包含执行数据库操作(包括调用其他过程)的编程语句 接受输入参数 向调用过程或批处理返回状态值,以表明成功或失败(以及失败原因) 以输出参数的形式将多个值返回至调用过程或批处理 1. 概述----存储过程优点 2.存储过程的类型 用户定义的存储过程:用户定义的存储过程是用户根据需要,为完成某一特定功能,在自己的普通数据库中创建的存储过程。 系统存储过程:系统存储过程以sp_为前缀,主要用来从系统表中获取信息,为系统管理员管理SQL Server提供帮助,为用户查看数据库对象提供方便。比如用来查看数据库对象信息的系统存储过程sp_help。从物理意义上讲,系统存储过程存储在资源数据库中。从逻辑意义上讲,系统存储过程出现在每个系统定义数据库和用户定义数据库的sys构架中。 扩展存储过程:指SQL Server的实例动态加载和运行的DLL,这些DLL通常是用编程语言(例如:C)创建的。扩展存储过程以xp_为前缀。 临时存储过程:以“#”和“##”为前缀的过程,“#”表示本地临时存储过程,“##”表示全局临时存储过程,它们存储在tempdb数据库中。 远程存储过程:是在远程服务器的数据库中创建和存储的过程。这些存储过程可被各种服务器访问,向具有相应许可权限的用户提供服务。 3.创建、执行存储过程 ①使用SSMS管理存储过程 创建 执行 查看 修改 删除 3.创建、执行存储过程 ② 利用T-SQL语句创建存储过程 5.2.2 存储过程创建和执行 传递参数的方式 5.2.4 存储过程的查看、修改和删除 5.2.4 存储过程的查看、修改和删除 5. 查看、修改和删除存储过程 ③ 删除存储过程 DROP PROCEDURE 存储过程名 CREATE PROCEDURE proc_stu @notpassSum int OUTPUT, @writtenPass int=60, @labPass int=60 AS …… SELECT stuName,stuInfo.stuNo,writtenExam, labExam FROM stuInfo INNER JOIN stuMarks ON stuInfo.stuNo=stuMarks.stuNo WHERE writtenExam<@writtenPass OR labExam<@labPass SELECT @notpassSum=COUNT(stuNo) FROM stuMarks WHERE writtenExam<@writtenPass OR labExam<@labPass GO 输出(返回)参数:表示没有通过的人数 推荐将默认参数放后 带输出参数的存储过程 统计并返回没有通过考试的学员人数 /*---调用存储过程----*/ DECLARE @sum int EXEC proc_stu @sum OUTPUT ,64 print '--------------------------------------------------' IF @sum>=3

文档评论(0)

000 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档