个人机房重构——存储过程
来源:互联网 发布:springmvc4返回json串 编辑:程序博客网 时间:2024/06/05 05:17
SQL server中的存储过程在刚刚接触数据库知识的时候,仅限于听说,通过这次机房重构,对SQL server的强大有了更加深刻的理解。存储过程的使用也极大地方便了我们在机房重构过程中对数据库中数据的操作。那么让我们来看看存储过程的神奇之处吧!
概述
存储过程(Stored Procedure)是使用Transact-SQL语言编写的一段能实现指定功能的程序。其次,这种程序被SQL Server编译好后,存放在SQL Server数据库中。用户可以通过存储过程的名称和参数传递调用这些具有指定功能的存储过程。存储过程也是数据库对象。人们通常使用存储过程提高数据库的安全性和减少网络通信数据量。
优点
使用存储过程有以下几个优点:
1)执行速度快,效率高:因为SQL Server会事先将存储编译成二进制可执行代码,所以在运行存储过程时,SQL Server不需要在对存储过程进行编译,可以加快执行的速度。
2)模块式编程:存储过程在创建完毕之后,可以在程序中对此被调用,而不必重新编写改T-SQL语句。在存储过程创建之后,也可以 对存储过程进行修改,而且一次修改之后,所有调用改存储过程的程序所得到的程序结果都会被修改,提高了程序的可移植性。
3)减少网络流量:由于存储过程是存储在数据库中,所以使用的时候只需要传一个指定那个存储过程的参数就可以了,所以减少了网络流量,提高运行速度。
4)安全性:存储过程可以作为一种安全机制来使用,对于不同的用户权限调用不同的存储过程。
创建方法
创建方法可以有两种,一种是通过SQL语句来进行创建,一种是通过SQL Server Management Studio。方法不同,但使用起来都很方便,可以根据自己需要选择。
SQL语句
--创建存储过程PROC_GetStudentCREATE PROC PROC_GetStudentAS SELECT *FROM Student_InfoGO --调用存储过程EXEC PROC_GetStudent
SQL Server Management Studio
1)创建过程如图所示:
存储过程编写
本文以机房收费系统退卡为例,介绍一下如何实现存储过程功能。
--------------------------应用:注册功能--操作:添加退卡信息到CancelCard_Info和修改卡号状态--制作:王洪玉--时间:2016/2/19------------------------CREATE PROCEDURE PROC_CancelCard @CardNo varchar(15), --定义传递的参数类型 @UserID varchar(10), @Date date, @Time time(7) AS Declare @cancelMoney decimal(18,0) --声明变量 begin --执行查询语句将查询到的金额传给参数 Select @cancelMoney=Cash From Card_Info Where CardNo=@CardNo --向Cancel_Info表中添加退卡数据 INSERT INTO CancelCard_Info(CardNo,CancelCash,Date,Time,UserID) values (@CardNo,@cancelMoney,@Date,@Time,@UserID)--修改card状态 Update Card_Info Set Status='未使用', Cash='0' WHERE CardNo=@CardNo END
D层的调用
既然已经编写好存储过程,那么我们来看看D层是如何使用存储过程的。
Public Function ICancelCard(ByVal Rcard As Entity.EN_StudentInfo) As Integer Implements ICancelCardDAL.ICancelCard Dim sqlhelper As New SQLHelper.SqlHelper Dim cmdText As String Dim intCard As Integer cmdText = "PROC_CancelCard" '将存储过程名称赋值给定义的字符串 Dim paras As SqlParameter() = {New SqlParameter("@CardNo", Rcard.CardNo), '传递D层的参数 New SqlParameter("@UserID", AllUse.AllUserID), New SqlParameter("@Date", Rcard.DateNow), New SqlParameter("@Time", Rcard.Time) } intCard = sqlhelper.ExecAddDelUpdate(cmdText, CommandType.StoredProcedure, paras) '调用SQLHelper,查询数据,需要注意的 '是使用CommandType.StoredProcedure, '不然无法识别该存储过程。 Return intCard '返回查询结果 End Function
总结:对于新知识和没有接触过的知识,要敢于尝试,接受加理解才是学习的王道。所以,在我们接触到新的知识的时候,将他应用于实践,会让我们学习起来起到事半功倍的效果。多实践,多总结这也许是最好的学习方法了吧!
1 0
- 个人机房重构——存储过程
- 机房重构——存储过程
- 机房重构——存储过程
- 【机房重构】——存储过程
- 【机房重构】——存储过程
- 机房重构——存储过程
- 【机房重构】——存储过程
- 【机房重构】——存储过程
- 机房重构—存储过程
- 个人重构机房收费系统——存储过程的介绍
- 机房收费系统(个人重构)——存储过程
- 【机房个人重构】存储过程的使用
- 存储过程中使用事务——机房重构
- 机房重构(3)——存储过程
- 【机房重构】——存储过程和触发器
- 【机房重构】——存储过程遇到的问题
- 【机房重构】——存储过程+事务
- 机房重构——存储过程详解
- Python中三引号的区别
- Windows进程间通信
- 图片异步加载ImageLoader
- make ARCH=arm sama5_defconfig
- Spring工作原理
- 个人机房重构——存储过程
- BitmapFactory.Options 解决加载大图片OOM
- 如何让android studio在运行时自带签名
- IPC网络摄像机app端开发问题解决思路
- Win下获取GetLastError()的文本信息
- DeepID算法实践
- Java设计模式(1)
- windows linux下回车符处理[文件转换]
- 安卓存储数据和文件系列1:读写sdCard方式