您的位置:首页 > 数据库

SQL SERVER2000教程-第七章 Transact-SQL编程 第三节 存储过程

2008-08-07 16:22 676 查看
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。/article/4534474.html
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技术博客
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐