数据库存储过程如何创建

2025-11-07 12:10:10

1、存储过程的优点

执行速度更快

允许模块化程序设计

提高系统安全性

减少网络流通量

数据库存储过程如何创建

2、--定义存储过程的语法

    CREATE  PROC[EDURE]  存储过程名 

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

              …… ,

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

             AS

            SQL语句

    GO

数据库存储过程如何创建

3、--创建存储过程的例子   

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

数据库存储过程如何创建

4、--调用存储过程

EXEC proc_stu 60,55

--或这样调用:

EXEC proc_stu @labPass=55,@writtenPass=60

数据库存储过程如何创建

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

EXEC 过程名 [参数]

存储过程的参数分两种:

输入参数   输出参数

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

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

6、--例子输出参数

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

数据库存储过程如何创建

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

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

数据库存储过程如何创建

8、修改存储过程

ALTER PROCEDURE proc_stu …

删除存储过程

DROP PROCEDURE proc_stu

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢