第8章-存储过程(精品).ppt

第8章-存储过程(精品课件)剖析

实例分析二 问题求解 步骤3:验证存储过程是否能输入和输出参数,查询“王芳同学的选课率。 DECLARE @avg float, @max int, @min int EXEC prcClass_Student ‘操作系统, @avg OUTPUT, @max OUTPUT, @min OUTPUT 实例分析二 结果分析 代码通过调用存储过程prcClass_Student,传入参数“操作系统”,返回该课程的选课信息。 输出参数和用来接收返回数据的变量的数据类型和位置必须匹配,并且用来接收返回值的参数也必须标识OUTPUT。 实例中存储过程用输入参数和输出参数与外部进行数据交互,利用输入和输出参数能给程序带来更大的灵活性。 实例分析二:存储过程用输出参数返回值 课堂练习一: 音乐信息管理系统中创建存储过程,磁存储过程能够返回某位歌手所唱的歌曲名字,价格和类别。 课堂练习二: 音乐信息管理系统中创建存储过程,磁存储过程能够所有歌曲中的最贵的,最便宜的和均价。 课堂练习三: 在学生成绩管理系统中,需要建立一个存储过程,此存储过程能够返回出指定张旭老师教的科目中最低分的学生姓名和分数。 课堂练习四: 在学生成绩管理系统中,需要建立一个存储过程,此存储过程能够返回指定学生的指定科目的的分数。 存储过程用默认值参数 通过存储过程的输出参数,可以对外部调用对象返回一个或多个值,同样在存储过程中还有另一种方式可以返回值——使用RETURN关键字。 使用RETURN只能返回单个值,并且是整型值。它通常返回下列值: 操作过程中受影响的行数 错误编码 插入到 IDENTITY 列中的值 存储过程用RETURN返回值 通过存储过程的输出参数,可以对外部调用对象返回一个或多个值,同样在存储过程中还有另一种方式可以返回值——使用RETURN关键字。 使用RETURN只能返回单个值,并且是整型值。它通常返回下列值: 操作过程中受影响的行数 错误编码 插入到 IDENTITY 列中的值 实例分析三 提出问题 创建存储过程以查看指定老师所授选修课的信息,并向调用对象返回一个消息,表明查询结果。 实例分析三 分析问题 步骤1:确定使用RETURN返回单个值,作为输出消息 步骤2:创建存储过程 步骤3:执行存储过程,验证其功能 实例分析三 问题求解 RETURN语句的语法为: RETURN [integer_expression] 步骤1:确定使用RETURN返回单个值,作为输出消息 RETURN 1-表示查询成功,找到所需记录 RETURN 0-表示查询失败,没有发现有效记录 实例分析三 问题求解 步骤2:创建存储过程 CREATE PROCEDURE prcListClassesByTeacherName ( @classTeacherName varchar(16) ) AS BEGIN IF exists(SELECT * FROM COURSE WHERE classTeacherName=@classTeacherName) BEGIN RETURN 1 END ELSE BEGIN RETURN 0 END END 实例分析三 问题求解 步骤3:执行存储过程,验证其功能 DECLARE @result int EXEC @result = prcListClassesByTeacherName 朱紫英 IF(@result=1) PRINT 存在相关信息 ELSE PRINT 没有相关信息 注 意: RETURN 不能返回NULL。若试图返回NULL,将生成警告信息并返回 0 存储过程的高级应用 存储过程的高级应用包括: 存储过程间的调用 在存储过程中使用游标 实例分析四:存储过程间的调用 提出问题 现在需要建立一个存储过程,此存储过程在场景一的基础上能够查询查看多门课程的相关信息。 实例分析四 分析问题 步骤1:创建调用现有存储过程的存储过程 步骤2:执行存储过程,验证其功能 实例分析四 问题求解 步骤1:创建调用现有存储过程的存储过程 注 意: 从一个存储过程调用另一个存储过程必须使用EXEC关键字 CREATE PROC prcListMultiClasses AS BEGIN EXEC prcListClassesByCourseName 大学英语 EXEC prcListClassesByCourseName 软件工程 END 实例分析五:在存储过程中使用游标 提出问题 在BigCollege选课系统中,要求一个学期结束后,教务人员能够根据授课老师给学生的分数,给及格的学生的总学分加上该门课程的学分。 实

文档评论(0)

1亿VIP精品文档

相关文档