大型数据库技术复习 —— 存储过程

简介

  • 存储过程(Stored Procedure)是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中。
  • Transact SQL存储过程可以接受输入参数,以参数形式返回输出值,或者返回成功、失败的状态信息。

系统存储过程

在这里插入图片描述

自定义存储过程

  • 语法格式:
CREATE PROCEDURE 过程名
  • 如:
USE 教学管理
GO
CREATE PROCEDURE P_学生部分信息 
AS
SELECT 学号,姓名,专业,所在院系,籍贯
FROM 学生表
USE 教学管理
IF EXISTS(SELECT * FROM sysobjects WHERE name='SC_infor' AND type='p')
   BEGIN
     DROP PROCEDURE SC_infor
   END
GO
CREATE PROCEDURE SC_infor(@smajor CHAR(20), @cname CHAR(20))
AS
SELECTS.sno,sname,smajor,sdepa,O.cno,cname,grade
  FROM student S, enrollment E, offering O, course C
  where smajor=@smajor
   AND cname=@cname
   AND S.sno=E.sno
   AND E.ono=O.ono
   AND O.cno=C.cno
GO

执行存储过程

  • 语法格式:
EXEC 过程名 [参数, ...]
  • 如:
DECLARE @专业 CHAR(20), @课名 CHAR(20)
SET @专业='计算机'
SET @课名='数据结构'
EXEC SC_INFOR @专业, @课名

带输出参数的存储过程

CREATE PROCEDURE P_计算平均成绩
(@学号 CHAR(7),@平均成绩 TINYINT OUTPUT)
AS
IF @学号 IS NULL RETURN 1
IF NOT EXISTS (SELECT * FROM 选课表 WHERE 学号=@学号)
   RETURN 2
SELECT @平均成绩=avg(成绩)
FROM 选课表
WHERE 学号=@学号

接收存储过程状态值

EXECUTE @return_status = procedure_name

删除存储过程

DROP PROCEDURE 过程名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tanleiDD

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值