sql 存储过程 概念

这是一个什么概念

枯燥杂乱的网文不给你转了,用我自己的词汇给你组织一下这个概念吧:

你可以把存储过程当做:把一系列语句合并到一起的这么一个整体

我觉得举例说明比较好,给你个例子:

先将【表1】中ID号为50—2000的记录删除、
再将【表2】中的这些记录的状态(STATUS)改为“已解除”:

delete 表1 where ID > 50 and ID < 2000
update 表2 set STATUS = '已解除' where ID > 50 and ID < 2000

正常情况下,以上两条语句分步执行就可以了,如果要用存储过程呢?

先建立存储过程(以下的语法为Sybase数据库的,其他数据库类同):

create procedure PRC_TEST (@start_ID int, @end_ID int)
as
begin
delete 表1 where ID > @start_ID and ID < @end_ID
update 表2 set STATUS = '已解除' where ID > @start_ID and ID < @end_ID
end

好了,执行这个语句,就将存储过程PRC_TEST提交到数据库里了,它有两个参数:start_ID int 和 end_ID,代表起始和终止ID号,类型为整数型int

怎么用这个存储过程呢? 这样执行:exc PRC_TEST 50, 2000

执行时,它先得到了两个参数,50、2000,分别赋值给start_ID int 和 end_ID,然后按照这两个参数分步执行封装在存储过程里的那两条语句了。

如果你这样执行:exc PRC_TEST 220, 8660
就是处理两个表中ID介于220—8660之间的记录了。
----------------------------------------------------------------------------

你也许会问了,既然可以分步执行的几句SQL,为什么要费力的写成存储过程啊?

主要是(我的经验和认识):

1、使数据处理参数化,对经常使用的一系列SQL进行封装,使其成为一个存储过程的整体,在每次执行时只要更换执行参数即可,不用去改里面每句SQL的where子句

2、★★这个很重要★★,假设你要循环处理某些数据,例如需要使用“游标”、“Do...while...语句”…………时,就要用到存储过程(或触发器)

=====================================================================

最后给你转一个短文吧,这是书面上的概念:
将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来, 那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令。
那么存储过程与一般的SQL语句有什么区别呢?
存储过程的优点:
1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2.当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
3.存储过程可以重复使用,可减少数据库开发人员的工作量
4.安全性高,可设定只有某此用户才具有对指定存储过程的使用权
存储过程的种类:
1.系统存储过程:以prc_(或sp_)开头,用来进行系统的各项设定.取得信息.相关管理工作,
如 sp_help就是取得指定对象的相关信息
2.扩展存储过程 以XP_开头,用来调用操作系统提供的功能
exec master..xp_cmdshell 'ping 10.8.16.1'
3.用户自定义的存储过程,这是我们所指的存储过程
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-11-29
在关系数据库中,SQL语言是应用程序和数据库管理系统之间的主要交流方法,使用SQL语言编写代码时,可以用两种方法存储和执行代码。一种是在客户端存储代码,并创建向数据库管理系统发送SQL命令并处理返回结果的应用程序;第二种是将这些SQL语句存储在数据库管理系统中,这些存储在数据库管理系统中的Sql语句就是存储过程,然后再创建执存储过程并处理返回结果的应用程序。
例如:你想在很多表中取某些记录,如果用SQL语言的话很长很复杂,你可以在数据库里编写一个存储过程,这时你用VB,C语言编写的应用程序代码里就只要给出存储过程的名称就行了
第2个回答  2008-11-29
存储过程:将一些固定的操作集中起来由数据库服务器来完成,以实现某个任务。
存储过程是SQL语句和可选控制流语句的预编译集合,存储在数据库中,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其他强大的编程功能。
第3个回答  2008-11-29
存储过程是SQL语句和可选流程控制语句的预编译集合,它以一个名称存储作为一个单元处理。是一种数据库对象,独立存储在数据库内。

这我从我SQL书里看到的~~
相似回答