SQL__存储过程__创建
1.简单存储过程的创建
-
热身
use xsgl go
2.举例说明
-
例子如下
—创建1个简单的存储过程YYM,查询所有学生的学号、姓名、课程号和成绩信息,并按成绩降序排列—
create procedure YYM as select xsqk.学号,姓名,性别,电话,出生日期,kc.课程号 from xs_kc,kc,xsqk where xs_kc.学号=xsqk.学号 order by 4 desc go exec YYM go
2.带有输入输出参数的存储过程的创建
-
使用输入函数
—实例1:
创建1个带有输入参数的存储过程Yanmin,查询指定课程号(作为输入参数)的学生成绩信息。create procedure Yanmin @课程号 char(5)='001' as select * from xs_kc where 课程号=@课程号 go exec Yanmin -----(1)使用默认值执行存储过程 exec Yanmin '002' ----(2)按位置传递参数 exec Yanmin @课程号='003' ----(3)通过参数名传递参数 go -------每次执行完后不要忘记+"go"
-
使用输入函数
—实例2:
创建并执行带输入参数的存储过程YangYanmin,查询指定学号(作为输入参数)的学生姓名、课程号、成绩。create procedure YangYanmin @学号 char(6) as select 姓名,课程号,成绩 from xs_kc,xsqk where xs_kc.学号=xsqk.学号 and xs_kc.学号=@学号 go exec YangYanmin '173601' exec YangYanmin @学号='173602' exec YangYanmin -----使用默认值执行存储过程 go
-
使用输出函数
—实例3:
创建1个带有输入参数和输出参数的存储过程YanMin,返回指定课程名称(作为输入参数),所授课程的课程号(作为输出参数)。create procedure YanMin -----创建存储过程 @课程名称 nchar(10),@课程号 char(5) output as select 课程名称=@课程名称 from kc where 课程号=@课程号 go declare @课程名称 nchar(10),@课程号 char(5) -----声明:declare set @课程名称='大学语文' -----输入实参,将参数传给存储过程 exec YanMin @课程名称,@课程号 output -----输出实参,将带回课程号 print @课程名称+@课程号 go