zoukankan      html  css  js  c++  java
  • 机房重构——存储过程

        原来仅仅是见过存储过程这几个字,知道有这么一个东西。但并未真正揭开它的面纱去真正了解它,可是在敲机房的时候就遇到了难题,要改动数据库中多张表的数据。使用SQL语句的话会非常复杂,到底什么可以让我们的效率提高呢?存储过程可以做到。这就迫使我不得不去再次触碰存储过程。

        定义:大型数据库中。一组完毕特定功能SQL语句的集合。相当于就是将原本须要再D层多次写的SQL语句,在数据库中写到了一块。

        何时才会用到存储过程。我们从定义中就能看出存储过程是SQL语句的集合。当我们使用的SQL语句复杂时,使用存储过程可以简化我们的工作。

    对于复杂程度我们要有非常好的估量,适时的使用存储过程,并非全部的都用到存储过程就非常好。

        以下我就以注冊卡为例来说明一下怎样使用存储过程:

    USE 
    /****** Object:  StoredProcedure [dbo].[PROC_Register]    Script Date: 03/15/2015 15:32:58 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author:		<sisi>
    -- Create date: <2015-3-9 12:02:28>
    -- Description:	<注冊>
    -- =============================================
    ALTER PROCEDURE [dbo].[PROC_Register]
    	-- Add the parameters for the stored procedure here
    	@cardID char(10),
    	@studentID char(10),
    	@account char(10),
    	@cardType char(10),
    	@usingState char(10),
    	@remark varchar(50),
    	@registrationDate char(10),
    	@registrationTime char(10),
    	@UserID char(10),
    	@studentName char(10),
    	@sex char(10),
    	@department char(10),
    	@grade char(10),
    	@studentclass char(10),
    	@RechargeDate char(10),
    	@RechargeTime char(10),
    	@RechargeMoney decimal(18,0)
    AS
    BEGIN
    	--加入卡表
    	insert into T_CardInfo (cardID ,studentID ,account,cardType,usingState ,remark,registrationDate ,registrationTime ,UserID ) values (@cardID,@studentID,@account,@cardType,@usingState ,@remark,@registrationDate ,@registrationTime ,@UserID )
    	--加入学生表
    	insert into T_StudentInfo (studentID,studentName ,sex,department ,grade,studentclass )values (@studentID,@studentName,@sex,@department ,@grade,@studentclass )
    	--加入到充值记录表
    	insert into T_RechargeRecord (cardID,RechargeDate ,RechargeTime ,RechargeMoney ,UserID )values (@cardID,@RechargeDate,@RechargeTime ,@RechargeMoney,@UserID )
    END
         看到存储过程,这另我想到我们常常常使用到的函数,函数也可以实现某种功能。它们二者有何差别呢?

            

        通过上面的对照可能对存储过程有了更深的理解。函数我们已经学过而且常常使用,通过将存储过程与函数联想到一起,这样就不会再惧怕它了,我们并非没有学过。仅仅是可能还没有发现自己已经见过,要从已有的知识中发掘陌生事物的原型。


  • 相关阅读:
    arcims(HtmlView)开发经验总结《转》
    Oracle sequence
    ajax 简介
    PHP:路在何方?
    ArcIMS初级教程(4)
    设计开发必须收藏的资源网站
    Win2008+IIS7.0+VS2008 在测试调试网站时报错,紧急求救!
    动态生成客户端数组
    解决MySQL不允许从远程访问的方法
    MySql中delimiter的作用是什么
  • 原文地址:https://www.cnblogs.com/llguanli/p/8744314.html
Copyright © 2011-2022 走看看