版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二节 带参数的存储过程存储过程的参数分为: 输入参数 输出参数 创建带参数的存储过程的基本规则: 可以带一个或多个参数,最多可带2100个参数。 参数可以使用各种数据类型 参数名前面冠以“”符号,以表明其是参数。 参数跟在存储过程名后 多个参数之间用逗号隔开1. 带输入参数的存储过程存储过程可以带一些输入参数,用于传递值给存储过程。(1) 创建带输入参数的存储过程基本语法:create procedure 存储过程名 参数1 数据类型, 参数2 数据类型, . 参数n 数据类型asbegin SQL语句1 SQL语句2 . SQL语句nend示例1-1:创建带2个输入参数的存储过程procG
2、etScore,功能:根据输入的学号和课程号,获取该生所选修的这门课程的成绩。create procedure procGetScore sno nvarchar(10), cno nvarchar(10)asbegin select grade from StudentCourse where sno = sno and cno = cnoend示例1-2:创建带1个输入参数的存储过程procGetStuInfo,功能:根据输入的院系名称,获取属于该院系的所有学生的信息。create procedure procGetStuInfo DepartmentName nvarchar(20)as
3、begin select sno, sname, sex, sage from Department d, Student s where d.DepartmentID = s.DepartmentID and DepartmentName = DepartmentNameend示例1-3:创建带3个输入参数的存储过程procInsert,功能:根据输入的学号、课程号和成绩,往StudentCourse表插入一条记录。create procedure procInsert sno nvarchar(10), cno nvarchar(10), grade floatasbegin insert
4、 into StudentCourse (sno, cno, grade) values (sno, cno, grade)end(2) 执行带输入参数的存储过程基本语法:exec 存储过程名参数名1= 参数值1,.,参数名n = 参数值n其中:可以指定参数名,也可以省略掉参数名。示例1-4:执行前面创建的存储过程procGetScore,传递参数值时,不指定参数名。exec procGetScore 8001, 001示例1-5:执行前面创建的存储过程procGetScore,传递参数值时,指定参数名。exec procGetScore sno = 8001, cno = 001示例1-6:
5、执行前面创建的存储过程procGetStuInfo,传递参数值时,不指定参数名。exec procGetStuInfo 软件学院示例1-7:执行前面创建的存储过程procGetStuInfo,传递参数值时,指定参数名。exec procGetStuInfo DepartmentName = 软件学院示例1-8:执行前面创建的存储过程procInsert,传递参数值时,不指定参数名。exec procInsert 8004, 003, 85示例1-9:执行前面创建的存储过程procInsert,传递参数值时,指定参数名。exec procInsert sno = 8005, cno = 001,
6、 grade = 752. 带输出参数的存储过程存储过程的参数可以是输入参数,也可以是输出参数。output关键字用于指明参数为输出参数。(1) 创建带输出参数的存储过程基本语法:create procedure 存储过程名 参数1 数据类型 output, 参数2 数据类型 output, . 参数n 数据类型 outputasbegin SQL语句1 SQL语句2 . SQL语句nend示例2-1:创建一个存储过程procGetDepName,带有1个输出参数DepartmentName,功能:查找学号为“8001”的这个学生所在的院系名称。create procedure procGet
7、DepName DepartmentName nvarchar(20) outputasbegin select DepartmentName = DepartmentName from Department d, Student s where d.DepartmentID = s.DepartmentID and s.sno = 8001end示例2-2:创建一个存储过程procGetMyScore,带有1个输出参数grade,功能:查找学号为“8001”这个学生所选修的课程号为“001”的这门课程的成绩。create procedure procGetMyScore grade floa
8、t outputasbegin select grade = grade from StudentCourse where sno = 8001 and cno = 001end(2) 执行带输出参数的存储过程基本语法:exec 存储过程名 输出参数名1 = 变量名1 output,., 输出参数名n = 变量名n output执行带输出参数的存储过程时,必须先定义一个变量,以存储输出参数返回的值。变量的数据类型应该与输出参数的数据类型相匹配。执行带输出参数的存储过程时,语句本身也必须包含关键字output,以允许将输出参数值返回给变量。示例2-3:执行存储过程procGetDepName,它
9、有1个输出参数DepartmentName,首先定义一个变量DepName,用于接受输出参数返回的值。declare DepName nvarchar(20)exec procGetDepName DepartmentName = DepName outputprint DepName 特别注意:输出参数名在前,变量名在后。示例2-4:执行存储过程procGetMyScore,它有1个输出参数grade。declare my_grade floatexec procGetMyScore grade = my_grade outputprint my_gradeif my_grade 90 pr
10、int 优秀else if (my_grade 70) print 良好else print 及格3. 带输入和输出参数的存储过程在创建存储过程时,既可以带输入参数,同时也可以带输出参数。(1) 创建带输入和输出参数的存储过程 示例3-1:创建一个存储过程procGetMyDepName,它带有1个输入参数sno,还带有1个输出参数DepartmentName,功能:根据输入的学号,找到该生所在的院系,输出院系名称。create procedure procGetMyDepName sno nvarchar(10), DepartmentName nvarchar(20) outputasbe
11、gin select DepartmentName = DepartmentName from Department d, Student s where d.DepartmentID = s.DepartmentID and s.sno = snoend示例3-2:创建一个存储过程procGetYourScore,它带有2个输入参数sno和cno,还带有1个输出参数grade,功能:根据输入的学号和课程号,获取该生所选修的这门课程的成绩,输出该成绩。create procedure procGetYourScore sno nvarchar(10), cno nvarchar(10), gr
12、ade float outputasbegin select grade = grade from StudentCourse where sno = sno and cno = cnoend (2) 执行带输入和输出参数的存储过程 示例3-3:执行前面创建的存储过程procGetMyDepName,它有1个输入参数sno,还有1个输出参数DepartmentName。declare DepName varchar(20)exec procGetMyDepName sno = 8001, DepartmentName = DepName outputprint DepName 示例3-4:执行前面创建的存储过程procGetYourScore,它有2个输入参数s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 全区住宅小区违法建筑管控的实施方案
- 临床脑出血患者肢体偏瘫病例分析、辅助检查、治疗、护理措施、出院指导及参考文献
- 林业病虫害防治存在的问题及对策
- 简易劳动合同范本:仓库管理员
- 国外创意农业开发
- 景县梁集乡茂源门窗组装厂新上门窗组装生产加工项目环评报告
- 中介谈判艺术:如何运用心理学知识
- 乡村绿化带病虫害防治策略
- 高血压饮食调理指南
- 糖尿病康复:低碳生活的倡导
- 文档甲沟炎全
- 建筑四新技术全套
- 山东大学齐鲁医院诊断证明
- 供应链运营管理教案
- 教育培训机构战略合作协议
- 2022-2023学年泉州市南安市小升初易错点数学检测卷含答案
- 肾结石护理查房
- 2023年海南银行股份有限公司校园招聘人员笔试历年高频考点试题答案详解
- 冲压工安全操作规程
- 电商上线活动策划方案
- 2023年湖南省普通高中学业水平考试政治试卷含答案
评论
0/150
提交评论