存储过程与触发器

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
补充内容
存储过程与触发器
存储过程与触发器概述
在大型数据库系统中,存储过程和触发器具有很 重要的作用。无论是存储过程还是触发器,都是 SQL 语句和流程控制语句的集合。就本质而言, 触发器也是一种存储过程。存储过程在运算时生 成执行方式,所以,以后对其再运行时其执行速 度很快。SQL Server 2000 不仅提供了用户自定 义存储过程的功能,而且也提供了许多可作为工 具使用的系统存储过程。
1.2 存储过程的优点
(2) 存储过程能够实现较快的执行速度 如果某一操作包含大量的SQL 代码或被多次执行,
那么存储过程要比批处理的执行速度快很多。因 为存储过程是预编译的,在首次运行一个存储过 程时,查询优化器对其进行分析、优化,并给出 最终被存在系统表中的执行计划。而批处理的 SQL 语句在每次运行时都要进行编译和优化,因 此速度相对要慢一些。
存储过程几种写法
1) 创建使用参数的存储过程
create procedure s_query
Create Proc au_info @lastna@mneamvearvcarhcaharr((42055)),
@firstnaasmesleectvsanorc,shn,aarg(e20)
Βιβλιοθήκη BaiduAs
from s
1.1 存储过程的概念
存储过程(Stored Procedure)是一组为了 完成特定功能的SQL 语句集,经编译后存 储在数据库中。用户通过指定存储过程的 名字并给出参数(如果该存储过程带有参 数)来执行它。
1.1 存储过程的概念
在SQL Server 的系列版本中存储过程分为两类:系统 提供的存储过程和用户自定义存储过程。系统过程主要 存储在master数据库中并以sp_为前缀,并且系统存储 过理SeS程rvQ主eLr要S中e是的rv从许er系多提统管供表理支中性持举获s或例。p_:取信d通sa信p息t过a_tc息y性o系pleu,的_统minn从活f存so;而动储为(过系如程统了,管解M理数S 员据SQ库管L 对象、数据库信息)都可以被顺利有效地完成。尽管这 些系统存储过程被放在master数据库中,但是仍可以在 其它数据库中对其进行调用,在调用时不必在存储过程 名前加上数据库名。而且当创建一个新数据库时,一些 系统存储过程会在新数据库中被自动创建。用户自定义 存储过程是由用户创建并能完成某一特定功能(如查询 用户所需数据信息)的存储过程。在本次课中所涉及到 的存储过程主要是指用户自定义存储过程。
存储过程几种写法
2)创建使用参数默认值的存储过程,该存储过程在
没有输入参数的情况下将默认值得到的结果输出
create procedure s_query
@name varchar(255)=‘李涛’
Create Proc au_info @lastnaasmesleectvsanroc,shna,arg(e40)='ringer', @firstnafrmomesvarchar(20)='anne'
1.2 存储过程的优点
当利用SQL Server 创建一个应用程序时,SQL 是一 种主要的编程语言。若运用SQL 来进行编程,有两种 方法。其一是,在本地存储SQL 程序,并创建应用程 序向SQL Server 发送命令来对结果进行处理。其二 是,可以把部分用SQL 编写的程序作为存储过程存储 在SQL Server 中,并创建应用程序来调用存储过程, 对数据结果进行处理存储过程能够通过接收参数向调 用者返回结果集,结果集的格式由调用者确定;返回 状态值给调用者,指明调用是成功或是失败;包括针 对数据库的操作语句,并且可以在一个存储过程中调 用另一存储过程。
As
where sn=@name
Select au_lname,au_fname,tgeioxtleec,sp_uqbue_rny ame
From ...
where au_fname=@firstname And au_lname=@lastname
Go
EXECUTE au_info
存储过程几种写法
Select au_lname,au_fname,twgiothleer,epsunb=_@nnaammee
From ...
exec s_query ‘李涛'
where au_fname=@firstname And au_lname=@lastname
Go
EXECUTE au_info ringer,anne
1.2 存储过程的优点
我们通常更偏爱于使用第二种方法,即在SQL Server 中使用存储过程而不是在客户计算机上调用SQL 编写 的一段程序,原因在于存储过程具有以下优点:
(1) 存储过程允许标准组件式编程 存储过程在被创建以后可以在程序中被多次调用,而 不必重新编写该存储过程的SQL 语句。而且数据库专 业人员可随时对存储过程进行修改,但对应用程序源 代码毫无影响(因为应用程序源代码只包含存储过程 的调用语句),从而极大地提高了程序的可移植性。
1.2 存储过程的优点
(3) 存储过程能够减少网络流量 对于同一个针对数据数据库对象的操作 (如查询、修改),如果这一操作所涉及 到的 SQL 语句被组织成一存储过程,那么 当在客户计算机上调用该存储过程时,网 络中传送的只是该调用语句,否则将是多 条SQL 语句,从而大大增加了网络流量, 降低网络负载。
1.2 存储过程的优点
(4)存储过程可被作为一种安全机制来充分利用 系统管理员通过对执行某一存储过程的权限进行 限制,从而能够实现对相应的数据访问权限的限 制,避免非授权用户对数据的访问,保证数据的 安全。
注意:存储过程虽然既有参数又有返回值,但是 它与函数不同。存储过程的返回值只是指明执行 是否成功,并且它不能像函数那样被直接调用, 也就是在调用存储过程时,在存储过程名字前一 定要有EXEC保留字
3)用显式值替代参数默认值的存储过程
Create Proc showind @tacrbealtee pvroacrecduhreasr_(q3u0er)y ='titles'
相关文档
最新文档