命令语句逐条向SQL Server发送,将降低系统运行效率。因此,SQL Server提供了一种方法,它将一些固定的操作集中起来由SQL
Server数据库服务器来完成,应用程序只需调用它的名称,就可实现某个特定任务,这种方法就是存储过程。
一、存储过程概述
存储过程(Stored Procedure)是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库。用户通过指定存储过程的
名字并给出参数(如果该存储过程带有参数)来执行它。存储过程的最大大小为 128 MB。用户定义的存储过程只能在当前数据库
中创建(临时过程除外,临时过程总是在 tempdb 中创建)。存储过程创建后其过程名存储在sysobjects系统表中,存储过程的
文本存储在syscomments系统表中。可以在创建时对它加密以使其在该系统表中也不能正常显示.
二、存储过程优点
存储过程是一组已被编辑在一起的执行某种功能的SQL语句。使用存储过程大有益处: 人们可以把用于完成相同任务的SQL
语句和逻辑在一个地方进行设计、编码、测试(只需要在第一次运行时进行分析、优化)。然后,需要用到该功能的应用程序都
可以执行该存储过程。存储过程可以节省因执行大块SQL脚本而增大的网络通信量,从而提高服务器效率。此外,系统管理员通
过对执行某一存储过程的权限进行限制,从而能够实现对相应的数据访问权限的限制,避免非授权用户对数据的访问,保证数据
的安全。
三、存储过程分类
在SQL Server 的系列版本中存储过程分为两类:系统提供的存储过程和用户自定义存储过程。系统过程主要存储在master
数据库中并以sp_为前缀,并且系统存储过程主要是从系统表中获取信息,从而为系统管理员管理SQL Server 提供支持。通过系
统存储过程,MS SQL Server 中的许多管理性或信息性的活动(如了解数据库对象、数据库信息)都可以被顺利有效地完成。尽
管这些系统存储过程被放在master 数据库中,但是仍可以在其它数据库中对其进行调用,在调用时不必在存储过程名前加上数据
库名。而且当创建一个新数据库时,一些系统存储过程会在新数据库中被自动创建。用户自定义存储过程是由用户创建并能完成某
一特定功能(如查询用户所需数据信息)的存储过程。在本章中所涉及到的存储过程主要是指用户自定义存储过程。
四、系统存储过程的应用
执行系统存储过程sp_help查看数据库teachdb中student表的信息。
打开查询分析器,输入以下内容,执行后结果如图6-1-1:
use teachdbexec sp_help student
![]()
图6-1-1
