- 1、本文档共40页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8.3.4 带参数的存储过程 输入参数的默认值 CREATE PROCEDURE proc_stu @writtenPass int=60, @labPass int=60 AS print print 参加本次考试没有通过的学员: SELECT sName,students.sNo,writtenExam, labExam FROM students INNER JOIN sc ON student.sNo=sc.sNo WHERE writtenExam@writtenPass OR labExam@labPass GO 笔试及格线:默认为60分 机试及格线:默认为60分 查询没有通过考试的学员 8.3.4 带参数的存储过程 输入参数的默认值 EXEC proc_stu --都采用默认值 EXEC proc_stu 64 --机试采用默认值 EXEC proc_stu 60,55 --都不采用默认值 调用带参数默认值的存储过程 --错误的调用方式:希望笔试采用默认值,机试及格线55分 EXEC proc_stu ,55 --正确的调用方式: EXEC proc_stu @labPass=55 8.3.4 带参数的存储过程 输出参数 如果希望调用存储过程后,返回一个或多个值,这时就需要使用输出(OUTPUT)参数了 问题: 修改上例,返回未通过考试的学员人数。 8.3.4 带参数的存储过程 输出参数 CREATE PROCEDURE proc_stu @notpassSum int OUTPUT, @writtenPass int=60, @labPass int=60 AS …… SELECT sName,students.sNo,writtenExam, labExam FROM students INNER JOIN sc ON student.sNo=sc.sNo WHERE writtenExam@writtenPass OR labExam@labPass SELECT @notpassSum=COUNT(stuNo) FROM sc WHERE writtenExam@writtenPass OR labExam@labPass GO 输出(返回)参数:表示没有通过的人数 推荐将默认参数放后 统计并返回没有通过考试的学员人数 8.3.4 带参数的存储过程 输出参数 /*调用存储过程*/ DECLARE @sum int EXEC proc_stu @sum OUTPUT ,64 print IF @sum=3 print 未通过人数:+convert(varchar(5),@sum)+ 人, 超过60%,及格分数线还应下调 ELSE print 未通过人数:+convert(varchar(5),@sum)+ 人, 已控制在60%以下,及格分数线适中 GO 调用带输出参数的存储过程 调用时必须带OUTPUT关键字 ,返回结果将存放在变量@sum中 后续语句引用返回结果 8.3.5 存储过程中的错误处理 可以使用PRINT语句显示错误信息,但这些信息是临时的,只能显示给用户 RAISERROR 显示用户定义的错误信息时 可指定严重级别, 设置系统变量@@ERROR 记录所发生的错误等 8.3.5 存储过程中的错误处理 RAISERROR (msg_id | msg_str,severity, state WITH option[,...n]]) RAISERROR语句的用法如下: msg_id:在sysmessages系统表中指定用户定义错误信息 msg_str:用户定义的特定信息,最长255个字符 severity:定义严重性级别。用户可使用的级别为0–18级 state:表示错误的状态,1至127之间的值 option:指示是否将错误记录到服务器错误日志中 8.3.5 存储过程中的错误处理 问题: 完善上例,当用户调用存储过程时,传入的及格线参数不 在0~100之间时,将弹出错误警告,终止存储过程的执行。 8.3
文档评论(0)