一、存储过程的概念



简单来说,存储过程,就是一个为了完成特定功能的SQL语句集合,它经过编译后存储在数据库中。用户通过指定存储过程的名称并传递相应参数来执行它。



SQL SERVER中分为系统提供的存储过程和用户自定义的存储过程两类。系统提供的存储过程,可以在任何数据库中调用而不必加数据库名,可以在master数据中查看;用户自定义的存储过程,是由用户根据需求进行创建、编写来完成特定功能的存储过程,也是我们主要学习的战场。



二、存储过程的优点



存储过程的实现,主要是用T-SQL编程语言完成。利用T-SQL编程,有两种方法可用。一是在用户本地编写T-SQL应用程序,向数据库服务器发送命令,获得处理结果;二是将编写的T-SQL程序作为存储过程,经编译后存储到数据库中,在应用程序中调用数据库中的存储过程,获得返回的结果集。



通常采用第二种方法,也就是用T-SQL编写存储过程,在服务器端实现对数据库的操作或对数据的处理。



1、允许标准组件式编程



存储过程可以在应用程序中被多次调用,而不必重复编写存储过程的SQL语句,增加了代码的可复用性。数据库开发人员可随时更改存储过程的SQL语言,而不必更改应用程序的代码,增加了代码的可维护性。



2、能够较快的执行



存储过程是经过编译、优化后存储在数据库中的,再次调用时,不需要进行编译、优化,相比T-SQL语句每次都要执行编译、优化而言,提高了应用程序的执行速度。



3、减少网络流量



调用存储过程,只是向服务器端传递一条命令,相比多条SQL语句,能够减少网络负载。



4、可以作为安全机制得到充分利用



对存储过程,可以赋予执行权限,来区分不同用户对数据库的操作权限。



注意:虽然存储过程与函数一样存在参数和返回值,但是存储过程与函数是不同的,存储过程的返回值只能表明执行是否成功,并且不能像函数那样直接用名称来调用,在调用存储过程时,必须用exec保留字。