版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章
原始出处 、作者信息和本声明。否则将追究法律责任。
[url]http://chenxing.blog.51cto.com/240526/44620[/url]
|
1.存储过程的概述 存储过程是SQL语句的预编译集合,它存储在数据库内,可由应用程序通过一个调用执行,而且充许用户声明 变量、有条件执行以及其它强大的功能。使用存储过程可以使程序模块化,可以在服务器端更快的执行,可 以减少网络流量,还可以增强安全性。 2.存储过程的创建 create procedure 存储过程名 [参数列表] as SQL语句 3.存储过程的执行 exec procedure 参数1、参数2。。。。。。 4.修改存储过程 alter procedure 存储过程名 5.删除存储过程 drop procedure存储过程名 6.例题 学生表(学号、姓名、住址、年级) 成绩表(考号、学号、成绩) 例1、创建立不带参数的存储过程 --查询所有学生的考试成绩 create proc proc_student1 as select 姓名,成绩 from 学生表,成绩表 where 学生表.学号=成绩表.学号 执行:EXEC proc_student1 例2、创建带输入参数的存储过程 --查询某位学生的成绩 create proc proc_student2 @stuName varchar(8) as select姓名,成绩 from 学生表 inner join成绩表 on 学生表.学号=成绩表.学号 where 姓名 =@stuName 执行:EXEC proc_student2 ‘Mary’ 例3、创建带输出参数的存储过程 --按照所要查找班级求出平均分 create proc proc_student3 @Year char(20),@SumCj int output as select @SumCj=sum(成绩) from 学生表 inner join 成绩表 on 学生表.学号=成绩表.学号 where 年级 =@Year 执行:declare @sumCj1 int EXEC proc_student3 ‘一年二班’,@sumCj1 output Print @sumCj1 例4、创建带返回值的存储过程 Return 语句可以带回一个值,也可带回结果集。 程序如果遇到return,那么return语句以下的所有语句将不再执行,程序 返回存储过程执行的起点。 --将所以查找的班级返回平均值 create proc proc_student4 @Year char(2) as begin declare @avgCj int if exists(select * from student where 年级 =@Year) begin select @avgCj=avg(成绩) from学生表 inner join成绩表 on 学生表.学号=成绩表.学号 where 年级=成绩表.学号 end else set @avgCj=-1 return @avgCj end 本文出自 51CTO.COM技术博客 |
转载于:https://blog.51cto.com/sunday/91601