欢迎来到163文库! | 帮助中心 精品课件PPT、教案、教学设计、试题试卷、教学素材分享与下载!
163文库
全部分类
  • 办公、行业>
  • 幼教>
  • 小学>
  • 初中>
  • 高中>
  • 中职>
  • 大学>
  • 各类题库>
  • ImageVerifierCode 换一换
    首页 163文库 > 资源分类 > PPT文档下载
    分享到微信 分享到微博 分享到QQ空间

    《sql server数据库应用与实践教程》课件第7章-存储过程-输入参数.ppt

    • 文档编号:5818759       资源大小:530KB        全文页数:23页
    • 资源格式: PPT        下载积分:15文币     交易提醒:下载本文档,15文币将自动转入上传用户(momomo)的账号。
    微信登录下载
    快捷注册下载 游客一键下载
    账号登录下载
    二维码
    微信扫一扫登录
    下载资源需要15文币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    优惠套餐(点此详情)
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、试题类文档,标题没说有答案的,则无答案。带答案试题资料的主观题可能无答案。PPT文档的音视频可能无法播放。请谨慎下单,否则不予退换。
    3、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者搜狗浏览器、谷歌浏览器下载即可。。

    《sql server数据库应用与实践教程》课件第7章-存储过程-输入参数.ppt

    1、 要查询要查询1号学生对应的姓名。号学生对应的姓名。解决方案:解决方案:SELECT StuName FROM Student WHERE StuID=A00001 要查询要查询2号学生对应的姓名。号学生对应的姓名。解决方案:解决方案:SELECT StuName FROM Student WHERE StuID=A00002 要查询要查询3号直至号直至n号学生对应的姓名。号学生对应的姓名。解决方案:解决方案:SELECT StuName FROM Student WHERE StuID=?SELECT StuName FROM Student WHERE StuID=StuID 用户输入:用

    2、户输入:A00005Student(StuID,StuName,StuAge,StuSex,StuScore,DepID)第七章第七章存储过程存储过程-输入参数输入参数存储过程的概念存储过程的概念创建带有参数的存储过程创建带有参数的存储过程(输入参数输入参数)存储过程的调用存储过程的调用 存储过程(存储过程(Stored Procedure)是在大型数据库系)是在大型数据库系统中,一组为了完成特定功能的统中,一组为了完成特定功能的SQL 语句集,经编译后存语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参

    3、数)来执行它。(如果该存储过程带有参数)来执行它。系统存储过程系统存储过程:SQL Server内置的存储过程,存储在内置的存储过程,存储在master库中,主要用途是执行库中,主要用途是执行SQL Server的某些管理的某些管理功能、显示有关数据库和用户的信息。系统存储过程名以功能、显示有关数据库和用户的信息。系统存储过程名以SP_开头,可以在任何数据库中执行系统存储过程。开头,可以在任何数据库中执行系统存储过程。用户存储过程用户存储过程:用户自行创建并存储在用户数据库中的存:用户自行创建并存储在用户数据库中的存储过程。储过程。学校将在每个月的学校将在每个月的1号统计该月中过生日的同学,为

    4、这些号统计该月中过生日的同学,为这些同学集中举行生日晚会,如何将本月过生日的同学学号,同学集中举行生日晚会,如何将本月过生日的同学学号,姓名,生日和系名显示出来?姓名,生日和系名显示出来?CREATE PROC prcGetStuInfoByBirthDateASBEGINDECLARE Today int SET Today=DAY(GETDATE()IF(Today=1)BEGIN SELECT StuID,StuName,StuBirthDate,DepName FROM Student JOIN Department ON Student.DepID=Department.DepID

    5、WHERE MONTH(StuBirthDate)=MONTH(GETDATE()ENDEND语法:语法:CREATE PROCEDURE 存储过程名存储过程名参数参数 数据类型数据类型=默认值默认值,.n AS SQL语句语句 .n 用户输入:用户输入:A00005CREATE PROC prcGetNameAS SELECT StuName FROM Student WHERE StuID=StuID CREATE PROC prcGetName StuIDSELECT StuName FROM Student WHERE StuID=StuID declare char(5)ASStuI

    6、D char(10)语法:语法:CREATE 输入参数输入参数PROCEDURE 存储过程名存储过程名参数参数 数据类型数据类型=默认值默认值,.nAS SQL语句语句 .n 用户输入:用户输入:A00005结论结论1:存储过程的输入参数是由用存储过程的输入参数是由用户需要提供的实际参数而决定的户需要提供的实际参数而决定的解决方案:解决方案:EXEC prcGetName A00005语法:语法:EXEC 存储过程名存储过程名 实参实参,n解决方案:解决方案:CREATE PROCAS使用存储过程实现由用户输入学生的学号及课程名称,根据输使用存储过程实现由用户输入学生的学号及课程名称,根据输入

    7、的信息,显示相应的成绩,如果成绩大于等于入的信息,显示相应的成绩,如果成绩大于等于60分,则显示分,则显示pass,否则显示,否则显示failed。prcGetScoreStuID char(10),CourseName varchar(20)解决方案:解决方案:CREATE PROCAS使用存储过程实现由用户输入学生的学号及课程名称,根据输使用存储过程实现由用户输入学生的学号及课程名称,根据输入的信息,显示相应的成绩,如果成绩大于等于入的信息,显示相应的成绩,如果成绩大于等于60分,则显示分,则显示pass,否则显示,否则显示failed。prcGetScoreStuID char(10),

    8、CourseName varchar(20)DECLARE Grade int SET Grade=0IF Grade 60 PRINT failedELSE PRINT passSELECT FROM ON WHERE Score SC JOIN Course SC.CourseID=Course.CourseID StuID=and CourseName=StuIDCourseNameGrade=用户输入:用户输入:EXEC prcGetScore A00001,DataBase用户输入用户输入1:EXEC prcGetScore A00001用户输入用户输入2:EXEC prcGetSc

    9、ore DataBase,A00001结论结论2:调用存储过程时,用户输入的实参个数必须与输入参数个数一调用存储过程时,用户输入的实参个数必须与输入参数个数一致,且一一对应。致,且一一对应。使用存储过程实现由用户输入学生的学号及课程名称,根据使用存储过程实现由用户输入学生的学号及课程名称,根据输入的信息,显示相应的成绩,如果成绩小于输入的信息,显示相应的成绩,如果成绩小于60分,则向分,则向ReExam(StuID,CourseID,Score)表中插入一条记录。表中插入一条记录。解决方案:解决方案:CREATE PROC prcReExamStuID char(10),CourseName

    10、varchar(20)ASDECLARE CourseID int SET CourseID=0SELECT CourseID=CourseID FROM Course WHERE CourseName=CourseNameIF Grade 60INSERT INTO ReExam VALUES(StuID,CourseID,Grade)假设用户输入的值违反约束性规则。假设用户输入的值违反约束性规则。BEGIN TRYSQL语句语句END TRYBEGIN CATCH错误处理语句错误处理语句END CATCHCREATE PROC prcReExamStuID char(10),CourseN

    11、ame varchar(20)AS BEGIN TRY DECLARE Grade int SET Grade=0 DECLARE CourseID int SET CourseID=0 SELECT Grade=Grade,CourseID=SC.CourseID FROM SC JOIN Course ON SC.CourseID=Course.CourseID WHERE StuID=StuID and CourseName=CourseName IF Grade 60 insert into ReExam values(StuID,CourseID,Grade)END TRYBEGIN

    12、 CATCH PRINT 输入数据有误,学号以输入数据有误,学号以A,B或或Z打头,后跟打头,后跟5位数字位数字END CATCH假设用户输入一个假设用户输入一个不存在的课程名?不存在的课程名?IF EXISTS语句用来判断某条信息是否存在语句用来判断某条信息是否存在例如,查询例如,查询1号学生的成绩之前可以先判断号学生的成绩之前可以先判断1号学生是否存在,号学生是否存在,存在则查询,不存在提示用户该学生不存在。可写成:存在则查询,不存在提示用户该学生不存在。可写成:IF EXISTS(SELECT*FROM Student WHERE StuID=A00001)SELECT*FROM SC

    13、WHERE StuID=A00001 and CourseID=1ELSEPRINT 该学生不存在!该学生不存在!CREATE PROC 存储过程名存储过程名参数名参数名 参数类型参数类型,nASBEGIN TRYIF EXISTS()BEGIN/执行功能执行功能ENDELSE/信息不存在信息不存在END TRYBEGIN CATCH/错误提示信息错误提示信息END CATCH请继续改进前页的程序!请继续改进前页的程序!exec prcReExam A00001,databaseexec prcReExam A00002,math可以在存储过程中使用可以在存储过程中使用RETURN语句返回一个

    14、值语句返回一个值示例:写一存储过程由用户输入学号和课程号,返回学生考试成绩示例:写一存储过程由用户输入学号和课程号,返回学生考试成绩CREATE proc prcGetInfoStuID char(10),CourseID intAs IF EXISTS(SELECT*FROM SC WHERE StuID=StuID and CourseID=CourseID)BEGINDECLARE Grade intSELECT Grade=Grade FROM SC WHERE StuID=StuID and CourseID=CourseIDRETURN Grade ENDELSE RETURN 0

    15、 用户输入:用户输入:declare ReturnValue intexec ReturnValue=prcIsCourseSelected A00001,1print ReturnValue注意:注意:RETURN只能返回整只能返回整数数示例:写一个存储过程,查找某个学生是否选修了某门课程,如果选修示例:写一个存储过程,查找某个学生是否选修了某门课程,如果选修了则返回了则返回1,否则返回,否则返回0,错误返回,错误返回-1.解决方案:解决方案:CREATE PROC prcIsCourseSelectedStuID int,CourseID intAS BEGIN TRY if exists

    16、(select*from SC where StuID=StuID and CourseID=CourseID)return 1 else return 0 END TRY BEGIN CATCH return-1 END CATCH思考:如果根据课程号返回相应课思考:如果根据课程号返回相应课程名,该如何操作?程名,该如何操作?写一存储过程,根据不同的系名,查找该系的所有学生最高写一存储过程,根据不同的系名,查找该系的所有学生最高入学成绩,假设最高分大于等于入学成绩,假设最高分大于等于90分,则返回状态分,则返回状态1,否则,否则返回状态返回状态0,出错返回状态,出错返回状态-1,系名不存在返回状态系名不存在返回状态-2。用户调用该存储过程,返回值为用户调用该存储过程,返回值为1,显示存在学生成绩大于,显示存在学生成绩大于等于等于90,返回状态,返回状态0,显示不存在学生最高分大于等于,显示不存在学生最高分大于等于90,否则提示用户出错了。否则提示用户出错了。带有输入参数的存储过程带有输入参数的存储过程带有返回值的存储过程带有返回值的存储过程创建带有输入参数及返回值的存储过程创建带有输入参数及返回值的存储过程RETURN语句能返回整数,如要返回其他类型或返回多个语句能返回整数,如要返回其他类型或返回多个值,该如何解决?值,该如何解决?


    注意事项

    本文(《sql server数据库应用与实践教程》课件第7章-存储过程-输入参数.ppt)为本站会员(momomo)主动上传,其收益全归该用户,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!




    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库