- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第九章 存储过与触发器的创建与维护.ppt.Convertor
第九章 存储过程与触发器的创建与维护
● 本章要点:
了解存储过程和触发器的概念和特点
掌握存储过程和触发器的创建、管理、删除
掌握存储过程和触发器的主要区别
本章教学内容:
9.1 概述
9.2 存储过程
9.3 触发器
9.4 存储过程与触发器的应用
在大型数据库系统中,存储过程和触发器具有很重要的作用。
存储过程是SQL语句和控制流语句组成的集合;
触发器是一种特殊的存储过程;
9.1 概述
9.1.1 存储过程概述
9.1.2 触发器概述
9.1.1 存储过程概述
定义:
将某些需要多次调用的实现某个特定任务的代码段编写成一个过程,将其保存在数据库中,并由SQL Server服务器通过过程名来调用它们,这些过程就叫做存储过程。
使用存储过程的优点:
实现了模块化编程。
可在单个存储过程中执行一系列SQL语句。
可从自己的存储过程内引用其他存储过程,简化复杂语句。
可能接受输入参数并返回输出值。
具有对数据库立即访问功能。
可以减少网络流量。
提高数据库的安全性。
存储过程既有参数又有返回值,其与函数的区别:
存储过程的返回值只是指明执行是否成功;
函数的返回值可直接被用在表达式中;
分类:
系统存储过程
扩展存储过程
用户自定义存储过程
系统存储过程:
由系统自动创建,主要存储在master数据库,一般以sp_作为前缀。
主要是从系统表中获取信息。
用于管理SQL Server和显示数据库和用户信息。
可以随时调用,不必在其前加上数据库名。
扩展存储过程:
属于动态链接库,SQL Server可以动态加载与执行,通常是C或C++语言写成的。
一般以xp_作为前缀。
用户自定义存储过程:
由用户创建并能完成某一特定功能的存储过程。
9.1.2 触发器概述
是一种特殊的存储过程。
存储过程是通过存储过程名被直接调用,触发器主要是通过事件进行触发而被执行。
是一个功能强大的工具,可使每个站点可在有数据修改时自动强制执行其业务规则。
可以用于完整性检查,可以实现更加复杂的数据完整性。
分类:
After触发器
Instead of触发器
After触发器
在数据变动(insert、update、delete)完成以后才被触发。
只能在表上定义。
同一个数据表中可以创建多个After触发器。
Instead of触发器
在数据变动以前被触发,并取代数据的操作(insert、update、delete) ,而去执行触发器定义的操作。
可以在表或视图上定义。
关于触发器的规定:
只在触发它的语句完成后执行。
如果语句在表中执行违反条件约束或引起错误,触发器不会触动。
一个语句只能触动一次触发器。
9.2 存储过程
9.2.1 创建存储过程
9.2.2 管理存储过程
9.2.3 执行存储过程
9.2.4 删除存储过程
9.2.1 创建存储过程
使用方法:
使用向导
使用企业管理器
使用查询分析器
使用查询分析器:
不能将Create Procedure语句和其它SQL语句组合到单个批处理中
只能在当前数据库中创建存储过程
存储过程是数据库对象,必须遵守标识符规则
权限默认属于数据库所有者,该所有者可将此权限授予其他用户
创建存储过程的语法格式为:
CREATE PROC[EDURE]procedure_name[;number] [{@parameter data_type}[VARYING][=default][OUTPUT]][,…n][WITH{RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}][FOR REPLICATION]AS
sql_statement[…n]
使用T-SQL语句创建存储过程
procedure_name:要创建的存储过程的名称。如果要创建全局临时存储过程,则需要在名称前面加##;如果要创建局部临时存储过程,则需要在名称前面加#。
number :用于对同名的过程进行分组的整数,以方便批量删除。
@parameter:语句中声明的参数,如果没有给参数定义默认值,则用户必须在执行过程时提供参数的值,最多可以有1024个参数。
Data_type:参数的数据类型。其中cursor数据类型只能用于OUTPUT参数,且必须同时指定VARYING 和OUTPUT关键字
VARYING:指定作为OUTPUT参数支持的结果集,仅使用于cursor。
Default:参数的默认值,必须是常量或NULL,可以包含通配符。
OUTPUT:表明参数将返回值。此值可以返回给EXEC[UTE]。
RECOMPILE:表示不在缓存中保存存储过程的执行计划。可以在使用临时值不希望覆盖缓存中的执行计划时使用。
ENCRYPTION:表示对存储在
文档评论(0)