第19章 存储过程和游标.ppt

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

释放游标 DEALLOCATE cursor_name 释放分配给游标的所有资源。 * * 19.2.3 游标示例 例9. 定义一个查询姓“王”的学生姓名和所在系的游标,并输出游标结果。 * * 例10. 声明带SCROLL选项的游标,并通过绝对定位功能实现游标当前行的任意方向的滚动。声明查询计算机系学生姓名、选的课程名和成绩的游标,并将游标内容按成绩降序排序。 * * 例11.建立生成报表的游标。生成显示如下报表形式的游标:首先列出一门课程名(只考虑有人选的课程),然后在此门课程下列出该门课程考试成绩大于等于80分的学生名、性别、所在系和成绩;然后再列出第二门课程名,再在此课程下列出该门课程考试成绩大于等于80分的学生名、性别、所在系和成绩;依此类推。 第19章 存储过程和游标 19.1 存储过程 19.2 游标 * * 19.1 存储过程 19.1.1 存储过程概念 19.1.2 创建和执行存储过程 19.1.3 查看和修改存储过程 * * 19.1.1 存储过程概念 用 T-SQL编写代码时,可用两种方法存储和执行代码: 在客户端存储代码,并创建向 SQL Server 发送SQL命令(或SQL语句)并处理返回结果的应用程序 将SQL语句存储在数据库服务器端数据库中,由用户调用执行 这些存储在数据库服务器端的SQL语句就是存储过程。 * * 存储过程功能 可以接受输入参数并以输出参数的形式将多个值返回至调用过程或批处理。 可以包含执行数据库操作(包括调用其它过程)的语句。 可以向调用者返回状态值,以表明成功或失败。 * * 存储过程好处 允许模块化程序设计 改善性能 减少网络流量 可作为安全机制使用 * * 19.1.2 创建和执行存储过程 CREATE PROC[ EDURE ] 存储过程名 [ { @参数名 数据类型 } [ = default ] --默认值 [OUTPUT] --是输出参数 ] [ , ... n ] AS SQL语句 [ ... n ] * * 执行存储过程的SQL语句 [ EXEC [ UTE ] ] 存储过程名 [实参 [, OUTPUT] [, … n] ] * * 例1.查询计算机系学生的考试情况,列出学生的姓名、课程名和考试成绩。 * * 执行此存储过程: EXEC student_grade1 CREATE PROCEDURE student_grade1 AS SELECT Sname, Cname, Grade FROM Student s INNER JOIN SC ON s.Sno = SC.Sno INNER JOIN Course c ON c.Cno = sc.Cno WHERE Sdept = 计算机系 例2.带有输入参数的存储过程:查询某个指定系学生的考试情况,列出学生的姓名、所在系、课程名和考试成绩。 * * 执行:查询信息管理系学生的修课情况。 EXEC student_grade2 信息管理系 CREATE PROCEDURE student_grade2 @dept char(20) AS SELECT Sname, Sdept, Cname, Grade FROM Student s INNER JOIN SC ON s.Sno = SC.Sno INNER JOIN Course c ON c.Cno = SC.Cno WHERE Sdept = @dept 例3.带有多个输入参数并有默认值的存储过程:查询某个学生某门课程的考试成绩,若没有指定课程,则默认课程为VB。 * * CREATE PROCEDURE student_grade3 @sname char(10), @cname char(20) = VB AS SELECT Sname, Cname, Grade FROM Student s INNER JOIN SC ON s.Sno = SC.sno INNER JOIN Course c ON c.Cno = SC.Cno WHERE sname = @sname AND cname = @cname 参数传递方式 (1)按参数位置传递值 执行存储过程的EXEC语句中的实参排列顺序必须与定义存储过程时定义的参数的顺序一致。 (2)按参数名传递值 执行存储过程的EXEC语句中要指明定义存储过程时指定的参数的名字以及此参数的值,而不关心参数的定义顺序。 * * 示例 按参数位置传递 EXEC student_gra

文档评论(0)

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

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

1亿VIP精品文档

相关文档