趣百科

数据库存储过程如何创建

编辑:Simone 2024-11-12 09:52:54 531 阅读

数据库存储过程如何创建

什么是存储过程?

存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。

存储过程的优点

执行速度更快

允许模块化程序设计

提高系统安全性

减少网络流通量

--定义存储过程的语法

CREATE PROC[EDURE] 存储过程名

@参数1 数据类型 = 默认值 OUTPUT,

…… ,

@参数n 数据类型 = 默认值 OUTPUT

AS

SQL语句

GO

--创建存储过板矿程的例子

CREATE PROCEDURE proc_stu

AS

DECLARE @writtenAvg float,@labAvg numeric(6,2)--定义变量

SELECT @writtenAvg=AVG(written),

@labAvg=AVG(lab) FROM Exam

print '笔试平均分:'+convert(varchar(6),@writtenAvg)

print '机试平均分:'+convert(varchar(6),@labAvg)

IF (@writtenAvg>70 AND @labAvg>70)

print '本校考试成绩:优秀'

ELSE

print '本校考试成绩:较差'

print '--------------------------------------------------'

print ' 参加本次考试没有通过的学员:'

SELECT stuName,stuInfo.stuNo,written,lab

FROM stuInfo INNER JOIN exam ON

stuInfo.stuNo=exam.stuNo

WHERE written<60 OR lab<60

GO

--调用存储过程

EXEC proc_stu 60,55

--或这样调用:

EXEC proc_stu @labPass=55,@writtenPass=60

EXECUTE(执行)语句用来调用存储过程 调用的语法

EXEC 过程名 [参数]

存储过程的参数分两种:

输入参数 输出参数

输入参数: 用于向存储过程传入值,类似C语言的按值传递;

输出参数: 用于在调用存储过程后, 返回结果,类似C语言的 按引用传递;

--例子输出参数

CREATE PROCEDURE proc_stu

@notpassSum int OUTPUT,

@writtenPass int=60,

@labPass int=60

AS

print '--------------------------------------------------'

print ' 孝伟仗 参加本次考试没有通过的学员:'

SELECT stuName,stuInfo.stuNo,written,lab

FROM stuInfo INNER JOIN Exam

ON stuInfo.stuNo=exam.stuNo

WHERE written<@writtenPass

OR lab<@labPass

SELECT @notpassSum=COUNT(stuNo)

FROM Exam

WHERE written<@writtenPass

OR lab<@labPass

GO

/*---调用存储过程----*/

DECLARE @sum int

EXEC proc_stu @sum OUTPUT ,64

print '--------------------------------------------------'

IF @sum>=3

print '未通过人数:'+convert(varchar(5),@sum)+ '人,

超过%,及格分数线还应下调'

ELSE

print '未通过人数:'+convert(varchar(5),@sum)+ '人,

已控制在%以下,及格分数线适中'

GO

修改存储过程

ALTER PROCEDURE proc_stu …

删除存储过程槐盆

DROP PROCEDURE proc_stu

版权声明:本站【趣百科】文章素材来源于网络或者用户投稿,未经许可不得用于商用,如转载保留本文链接:https://www.qubaik.com/answer/58337.html

相关推荐