SQL Server 2008中的存储过程的研究及应用

2016-07-05 04:35张梅梅宋正明李豪王影
中国市场 2016年23期
关键词:调用语句应用程序

张梅梅++宋正明++李豪++王影

[摘要]存储过程是一种重要的数据库对象,恰当地使用存储过程可以简化应用程序的开发,提高系统的运行性能。文章以SQL Server 2008的存储过程为例,阐述了存储过程的定义、特点及其参数的定义,主要研究了存储过程中出口参数和入口参数的使用,并在Visual C#中实现调用存储过程的方法。

[关键词]SQL Server;存储过程;出口参数;入口参数;Visual Studio C#

[DOI]10.13939/j.cnki.zgsc.2016.23.79

1引言

在以数据库为核心的大中型应用系统中,通常需要处理海量数据,数据的存储和查询速度直接影响应用系统的性能。存储过程是一组保存在数据库中的,经过预先编译和优化的,执行数据库操作的SQL语句。存储过程可以作单独的数据库对象,也可以作为一个单元被用户的应用程序调用。存储过程作为数据库对象存储在数据库中,执行一次后,其编译好的代码存储在高速缓冲存储器中,再次使用时直接调用,无需再次编译即可执行,使执行速度大大提高。因此,使用存储过程完成对数据库的操作,可以有效提高数据存储和查询的速度。同时,存储过程还可以降低整个应用程序的复杂性,提高重用性、安全性和可伸缩性。本文详细介绍在Visual C#开发平台下,主要用Transact-SQL编写存储过程存储在SQL Server中,并创建应用程序来调用存储过程,返回结果,然后对数据结果进行处理。且都提供对存储过程直接访问的功能。通过具体的例子,介绍了在SQL Server数据库中如何使用存储过程实现复杂的数据处理功能。

当应用程序需要访问服务器上的数据时,在不建立存储过程的情况下。通过网络将Transact-SQL语句发送至服务器,服务器对语句编译后再传递给客户端。这种方式对于大量数据处理的事务,增加了网络上的传输量,加重了客户端的负担。

存储过程就是一种Transact-SQL语句,编译在单个的执行计划中。它在服务器端对数据库记录进行处理,然后将结果发给客户端。这样,既充分利用了服务器强大的计算能力,也避免了应用程序执行时需要大量数据从服务器下载到客户端,减少了网上的传输量,同时也提高了客户端的工作效率。

2存储过程的特点

第一,执行速度快:存储过程在创建时就经过了语法检查和性能优化,因此在执行时不必再重复这些步骤。存储过程经过第一次调用后,驻留在内存中,不必再编译和优化,所以执行速度很快。第二,模块化的程序设计:存储过程经过了一次创建以后,可以被无数次调用。用户可以独立于应用程序而对存储过程进行修改。可以按照功能模块的不同,设计不同的存储过程以供使用。第三,减少网络通信量:存储过程中可以包含大量的Transact-SQL语句。但存储过程在调用时只需一条语句就可以实现,所以大大减少了网络上数据通信的传输。第四,保证系统的安全性:设置用户通过存储过程来对某些关键数据进行访问,但不允许用户直接使用Transact-SQL或企业管理器来对数据进行访问。

3存储过程

3.1存储过程的创建

存储过程是用过程头定义的,过程头包括关键词Procedure、过程名和参数清单,紧接过程头后可定义任何过程范围的变量,代码的主体被定义为一个或多个块,块使用Begin和End语句限定范围,还可以附带错误处理Exception块。所有过程的定义都必须用End语句作为结束。创建存储过程可使用SQLPLUS、Transact-SQL、可视化数据库工具(Visual Database Tools)、Oracle过程生成器(Oracle Procedure Builder)等工具。

3.2存储过程的结构和定义语法

3.3存储过程的参数

参数用于在存储过程和调用存储过程的应用程序或工具之间交换数据,存储过程可以有零个或多个参数,这些参数会被用于程序逻辑中确定的某些动作,参数名和参数的数据类型被定义于程序设计单元的首部。存储过程的参数按其用途可分为两类:入口参数和出口参数。入口参数可用来把值传递给存储过程使用。入口参数的语法如下:

Create Procedure_name @param1 data_type,@paramN datatype

例如:create procedure usp_input @temp_name varchar(30) @total int,@current_date datetime

出口参数采用变量的形式向调用过程或程序返回结果值。声明出口参数的语法如下:

Create procedure procedure_name @parameter_name datatype OUTPUT

例如:create procedure usp_test @p1 int OUT

Declare @v_prodcount INTEGER

存储过程参数的传递方式主要有标准方式(按值传递)和使用参数名(按名传递)。

3.4存储过程的执行

用EXECUTE语句可以运行一个存储过程。语法如下:

3.5存储过程的删除

不再需要存储过程时可将其删除。语法如下:

3.6存储过程的调用

存储过程的应用方法是多种多样的,在不同的编程语言中使用的语法也各有差异。但调用存储过程的思路是基本一致的,一般可归纳为:①连接数据库;②定义输入输出参数;③执行存储过程;④关闭数据库连接。

4存储过程的应用实例

为了提高数据的运行效率,在我们设计的教务管理系统中,我们应用了如下的存储过程从管理员角度创建增、删、改、查几个存储过程:

(1)增加管理员。

5结论

本文以SQL Server 2008数据库为例,通过典型的实例,介绍了使用存储过程进行复杂数据处理的方法,开发人员稍加修改即可用于自己的应用程序开发。此外,从以上应用实例,我们可以体会到存储过程技术在数据编程方面的强大功能。在实际网络系统的开发工作中,由于存储过程的引入,可以使开发者的编程效率大大提高。

在数据库系统开发中,使用存储过程可以提高整个系统与数据库交互的性能,可以让数据库管理系统来优化对数据库的存取,但存储过程中业务逻辑也并非用得越多越好。所以在实际工作中,要根据具体情况和实际工作经验来确定如何编写存储过程。

参考文献:

[1]冯洪峰.存储过程在SQL Server2005中应用[J].电脑编程技巧与维护,2010(14).

[2]蒋社想,程翠平.基于SQL Server存储过程的评标专家系统的研究与实现[J].长沙通信职业技术学院学报,2011(3).

[3]韦晨艳,杨键鸣,姚斯立.SQL数据库中存储过程.触发器的应用研究[J].中国信息界,2011(6).

[4]凃云杰.存储过程在教学管理信息系统中的灵活应用[J].电子制作,2014(18).

[5]杨铭.SQL Server中存储过程技术的研究[J].科技视界,2014(34).

猜你喜欢
调用语句应用程序
重点:语句衔接
核电项目物项调用管理的应用研究
删除Win10中自带的应用程序
LabWindows/CVI下基于ActiveX技术的Excel调用
基于系统调用的恶意软件检测技术研究
如何搞定语句衔接题
利用RFC技术实现SAP系统接口通信
三星电子将开设应用程序下载商店
作文语句实录
微软软件商店开始接受应用程序