机房重构之存储过程的使用

    在机房重构中,由一开始的无从下手,到今天,慢慢的结束,思路越来越清晰,今天,我们就说一下存储过程的使用!

(一)Why?

    为什么使用存储过程呢?举个例子,我们在注册时要做的逻辑判断:

    1.首先,判断卡号是否为空,是否为数字?

    2.其次,判断卡号是否已经存在?

    3.再者,判断充值金额是否大于最小充值金额?

    4.符合,则修改数据库:(1)添加学生表

                         (2)添加充值表

                         (3)添加卡表

    在这里,我们设计到了对于三个表的操作(Student,Recharge,Card)。当然,我们可以一个表一个表去修改,但是那肯定不是我的本意。我们都知道,编程是一个不断“抽象”和“封装”的过程,我们必须时刻注意要“合并同类项”,减少代码的重复。

    所以,我们就引入了存储过程~~

(二)What?

   什么是存储过程呢?

   来自百度百科比较权威的解释:存储过程(Stored Procedure)是在大数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。

    我的理解:存储过程,是对SQL语句的封装,就是把几种不同的对数据库的操作封装到一起,在调用的时候直接调用存储过程即可,不用再去写繁琐的SQL语句,一句话搞定。  

    就像我们把“清空文本框”“判断文本框是否为空”等等封装为一个函数,存储过程,就是把不同的操作封装起来了。

(三)How?

   存储过程的使用说起来特别简单。

   

   存储过程添加成功之后,再就是编写代码了。

   以注册为例,

-- =============================================
-- Author:		<王孟梅>
-- Create date: <2015/6/1,>
-- Description:	<注册>
-- =============================================
CREATE PROCEDURE [dbo].[PROC_Register]  
@cardNo varchar(10),@studentNo varchar(10),@cash varchar(10),@type varchar(10),@ischeck varchar(10),@status varchar(10),@date varchar(10),
@time varchar(10),@state varchar(10),@username varchar(10),
@studentname varchar(10),@sex varchar(10),@department varchar(10),@grade varchar(10),@classname varchar(10),@explain varchar(10),
@addmoney varchar(10)
AS
BEGIN
    --添加Card表
    insert into Card (cardNo ,studentNo ,cash,Type ,IsCheck ,Status,Date,Time ,State ,userName) values (@cardNo ,@studentNo ,@cash ,@Type,@IsCheck ,@Status ,@Date ,@Time ,@state ,@username  )
    --添加到Student表
    insert into Student  (cardno,studentNo ,studentName ,sex ,department ,grade ,classname ,explain,cash ,UserName  ) values (@cardno,@studentNo ,@studentName ,@sex ,@department ,@grade ,@classname ,@explain,@cash ,@UserName)
    --添加到Recharge表
    insert into Recharge (cardNo ,AddMoney  ,Date ,Time ,IsCheck,userName ) values (@cardNo ,@AddMoney  ,@Date ,@Time ,@IsCheck,@userName)
END
GO


   在需要的时候,我们直接调用就可以了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 24
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值