网络数据库讲稿(存储过程)_网络数据库讲稿备份
网络数据库讲稿(存储过程)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“网络数据库讲稿备份”。
网络数据库讲稿
4/15/2013
存储过程
P177
一、什么是存储过程
1.是一个过程,与其它语言中的过程几乎完全相同。它们可以接收参数、输出参数、返回单个或多个结果集以及返回值。2.存储在服务器上的数据库中,创建时进行编译。3.在后台运行,其主要功能是对数据库操作。4.可以在一个存储过程内调用其它存储过程。
二、.存储过程的分类
分为三类:用户自定义存储过程(普通存储过程),扩展存储过程,系统存储过程。
三、创建普通存储过程
CREATE PROCEDURE命令 例: 1.CREATE PROCEDURE 检索 @XH CHAR(6)AS SELECT * FROM 成绩 WHERE 学号=@XH 2.在成绩表中添加一条记录,如果成绩及格,还要在学生表中增加学分。
CREATE PROCEDURE 输入考试分数
@XH CHAR(6),@KCH CHAR(8),@FS DECIMAL(4,1)AS IF EXISTS(SELECT * FROM 学生 WHERE 学号=@XH)BEGIN
INSERT 成绩 VALUES(@XH,@KCH,@FS)
IF @FS>=60
UPDATE 学生 SET 已修学分
=已修学分+(SELECT 学分 FROM 课程 WHERE 课程编号=@KCH)
WHERE 学号=@XH END ELSE PRINT '无此学号'+@XH
3.在成绩表中删除指定学号和课程的记录,如果所删的分数及格,还要在学生表中减去对应的学分。CREATE PROCEDURE 删除考试分数
@XH CHAR(6),@KCH CHAR(8)AS DECLARE @FS DECIMAL(4,1)SET @FS=(SELECT MAX(分数)FROM 成绩
网络数据库讲稿
4/15/2013 WHERE 学号=@XH AND 课程编号=@KCH)IF @FS>0 DELETE FROM 成绩 WHERE 学号=@XH AND 课程编号=@KCH IF @FS>=60 UPDATE 学生 SET 已修学分
=已修学分-(SELECT 学分 FROM 课程 WHERE 课程编号=@KCH)
WHERE 学号=@XH
四、执行存储过程
P183 例: EXECUTE 检索 '200202' 检索 '200202' INSERT 成绩0 EXECUTE 检索 '200202' EXECUTE 输入考试分数 '200209','W2020610',56 EXECUTE 输入考试分数 '200209','W2020610',88 EXECUTE 输入考试分数 '200209','L2030506',90 如果执行存储过程是批处理中的第一条语句,则可以省略EXEC。
五、参数
P185 1.输入参数 按位置传递 用参数名传递 使用默认值
2.输出参数
P187 虚参和实参后边都要加上OUTPUT。例P187: CREATE PROC 班级人数@N INT OUTPUT,@CID CHAR(6)='200201' AS SELECT @N=COUNT(*)FROM 学生WHERE 班级=@CID
DECLARE @M INT EXEC 班级人数@M OUTPUT,'200208' SELECT @M
DECLARE @M INT EXEC 班级人数@M OUTPUT SELECT @M
六、查看存储过程信息
select * from sys.sql_modules SELECT OBJECT_DEFINITION(OBJECT_ID('检索'))
网络数据库讲稿
4/15/2013 sp_helptext 检索
七、修改存储过程
八、删除存储过程
1.在对象资源管理器或查询窗口中删除 2.用命令DROP PROCEDURE删除。