带你快速了解“存储过程”的定义及优点

带你快速了解“存储过程”的定义及优点,第1张

带你快速了解“存储过程”的定义及优点,第2张

存储过程

执行sql语句时,应该先编译再执行。存储过程是经过编译的sql语句。需要使用的时候直接调用应用就行了,这样效率会高。

存储过程简介

存储过程是由流控制和SQL语句编写的过程。这个过程被编译、优化并存储在数据库服务器中。应用程序使用时,只能调用。在ORACLE中,可以将几个相关的进程组合起来形成一个包。

使用存储过程有以下优点:

*存储过程的能力大大增强了SQL语言的功能和灵活性。存储过程可以用流控制语句编写,非常灵活,可以完成复杂的判断和计算。

*可以保证数据的安全性和完整性。

#通过存储过程,未授权用户可以间接访问受控数据库,从而确保数据的安全性。

#通过存储过程,相关的操作可以一起发生,从而维护数据库的完整性。

*在再次运行存储过程之前,数据库已经分析了它的语法和句法,并给出了优化的执行方案。这个编译过程可以大大提高SQL语句的性能。因为执行SQL语句的大部分工作已经完成,所以存储过程可以非常快地执行。

*它可以减少网络的流量。

*将体现企业规则的操作程序放入数据库服务器,以便:

#集中控制。

#当企业规则改变时,只需改变服务器中的存储过程,无需修改任何应用程序。企业规则的特点是变化频繁。如果把体现企业规则的操作程序放到应用程序中,当企业规则发生变化时,修改应用程序(修改、发布、安装应用程序)将需要大量的工作。如果把反映企业规则的操作放到存储过程中,当企业规则发生变化时,只需要修改存储过程,应用程序不需要任何修改。

数据库存储过程的本质是部署在数据库端的一组定义代码和SQL。

SQL语言可用于编写数据库访问的存储过程,其语法如下:

CREATE PROC[EDURE]procedure _ name[;number]
[
{ @ parameter data _ type }][变化] [=默认][输出]
] [,...n]
[WITH
{
RECOMPILE
| ENCRYPTION
| RECOMPILE,ENCRYPTION
}

[FOR REPLICATION]
AS
SQL _ statement[...n]


中的内容是可选的,而()中的内容是必需的。
示例:如果用户希望创建一个存储过程Select_delete来删除表tmp中的记录,可以将其编写为:

create Proc select _ del As
Delete tmp


例:用户想查询tmp表中某年数据的存储过程。

create proc select _ query @ year int as
select * from tmp where year = @ year


这里@year是存储过程的参数。

示例:此存储过程从节点N开始查找顶级父节点。这个经常使用的过程可以被存储过程取用,在网页中重用,实现共享。

空:表示此节点是顶级节点。

父节点号

n节点不是空:表示该节点的父节点号。

Dwmc(公司名称)

CREATE proc search _ dwmc @ dwidold int,@ dwmcresult varchar(100)output
as
declare @ stop int
declare @ result varchar(80)
declare @ dwmc varchar(80)
declare @ dwid int
set no count on
set @ stop = 1
set @ dwmc = " "
select @ dwmc = dwmc,@ dwid = set

使用exec pro-name [pram1 pram2...]

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 带你快速了解“存储过程”的定义及优点

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情