存储过程基础(一)基本概述

        存储过程其实就是在数据库中运行的方法,主要由存储过程名和存储过程参数组成,还可以有返回结果。

        存储过程的优点主要有以下几点:

  1. 执行速度快。因为在数据库中保存的存储过程语句都是编译过的。如果是通过ado.net直接将sql语句提交给数据库,还要经过编译一步,所以相对来说效率会变慢。
  2. 可以进行模块化程序设计,实现类似于方法的复用,简化开发。
  3. 减少网络传输流量。因为只要传输一个存储过程名即可。如果是写大量的sql代码,通过ado.net提交到数据库,会增加数据传输量,对效率会有一些影响。

        存储过程严格来区分主要分为两种,一种是系统自带的存储过程(系统定义的存储过程,存放在master数据库中),另外一种是用户自定义的存储过程。系统存储过程的特点是名称以“sp_”或“xp_”开头,用户自定义的存储过程网上大部分是以“usp_”开头,这个根据每个人的不同习惯,个人认为还是统一规范的比较好。系统提供的存储过程很多,在这里我只简单的提“sp_helptext”这个存储过程,这个存储过程之前经常使用,是查看存储过程、触发器以及视图实际代码文本的一个方法。比如,你的同事写了一个存储过程,你想知道这个存储过程的代码是怎么写的,你就可以通过这个存储过程方法来查看。另外还有一个比较常用的是“sp_stored_procedures”,这个存储过程实现的是可以获取当前环境中所有的存储过程。

        接下来给大家写一个存储过程的小案例,这个存储过程实现的是两个字符串合并,然后以逗号隔开并输出,代码如下:

存储过程基础(一)基本概述

        上面的例子,获取到的结果是通过输出参数,将其结果给传出来,那么如果想将获取到的结果直接输出,应该怎么实现呢,接下来在演示一个简单的小案例。代码如下:

存储过程基础(一)基本概述

        通过上文两个小案例的比较,可以看出通过存储过程获取到的结果可以直接select输出,也可以将结果赋值给一个输出变量进行返回,还有一点需要注意,如果是系统的存储过程 在调用的时候exec可以省略,若是用户自定义的存储过程,调用的时候必须有exec关键字。