SQLserver2005数据库存储过程与触发器常识SQLServer2005数据库维护基础与进阶.ppt_第1页
SQLserver2005数据库存储过程与触发器常识SQLServer2005数据库维护基础与进阶.ppt_第2页
SQLserver2005数据库存储过程与触发器常识SQLServer2005数据库维护基础与进阶.ppt_第3页
SQLserver2005数据库存储过程与触发器常识SQLServer2005数据库维护基础与进阶.ppt_第4页
SQLserver2005数据库存储过程与触发器常识SQLServer2005数据库维护基础与进阶.ppt_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库存储过程与触发器的常识 用友软件股份有限公司 小型服务支持部 2009年 9月 存储过程和触发器 开发中编写的一些SQL语句会占用程序的很大篇幅,而且 不便于在其他地方重用,且由于这些SQL语句通常还要跨 越传输途径从外部不仅会导致程序的运行效率低,还会产 生安全隐患,而存储过程则能克服以上的缺陷。 触发器可以大大增强应用程序的健壮性、数据库可恢复性 和数据库的可管理性。 存储过程和触发器都是SQL Server的数据库对象。存储过 程的存在独立于表,它存放在服务器上,供客户端调用。 存储过程和触发器 1 存储过程概述 2 设计存储过程 3 实现和管理存储过程 4 触发器概述 5 触发器设计规则 6 实现和管理触发器 1 存储过程概述 1.1 存储过程的特点 能够在单个存储过程中执行一系列的Transact-SQL语句, 能够以在一个存储过程中调用其他的存储过程。 存储过程是保存在服务器端的已经编译的Transact-SQL语句。 存储过程可以使用控制流语句和变量,大大增强了SQL的功能。 存储过程在提交前会自动检查语法。 存储过程是管理员放在服务器端的Transact-SQL语句。 1.2 存储过程的分类 1. 用户存储过程 2. 系统存储过程 3. 扩展存储过程 2 设计存储过程 2.1 一些设计规则 用户在设计数据库(的存储过程)时,应遵守以下规则: 在SQL Server 2005中,存储过程可以使用Transact-SQL中 的任何语句,但是表1中的语句除外。 2.2 存储过程的内部命名规范化 存储过程中的Transact-SQL语句使用的对象名称必须符合 规范的模式,如果未指明对象所属的模式,存储过程将使用 当前默认的模式。 每个存储过程必须有惟一的名称,存储过程中使用的变量 类型必须符合Transact-SQL的要求,变量名必须以开头,并 且存储过程的名称和变量的命名要符合Transact-SQL标识符 规则。 2.3 存储过程的加密定义 如果用户想定义一个不让其他用户看到具体操作的存储过 程,可以使用WITH ENCRYPTION参数,那么存储过程将会以不 可读的状态存在,并且存储过程拥有者、创建者和数据库管 理员都不可见。 3 实现和管理存储过程 3.1 创建存储过程 由于必须使用Transact-SQL语句创建存储过程,所以用户 必须首先掌握创建存储过程的Transact-SQL语法结构,然后再 学习如何使用Management Studio创建存储过程。 3.2 执行存储过程 执行存储过程有多种方式,比较常用的有以下几种。 1. 通过Execute或Exec语句执行 2. 通过设置,使存储过程自动执行 3. 作为批处理的第一行,直接输入存储过程名 3.3 修改存储过程 1. 修改存储过程的语法 注意:修改存储过程的名称会影响已关联对象对此存储过程 的调用。 2. 使用Management Studio修改存储过程 3.4 重新编译存储过程 1.sp_recompile系统存储过程可以强制指定的存储过程在下次 调用时重新编译。其调用的语法结构为:sp_recompile objname = object,其中的object为存储过程的名称。 2.在创建存储过程时使用WITH RECOMPILE参数项,SQL Server 将不会把此存储过程放在缓冲存储器中,并且每次调用此存 储过程时都会重新编译。 3.在调用存储过程时,可以使用参数选项WITH RECOMPILE强制 重新编译。使用这个参数项要求存储过程的参数必须是非典 型的或者数据发生了很大的变化,否则一般不用它。 3.5 删除存储过程 如果一个存储过程不再需要,用户就可以删除它,但是如 果此存储过程有关联存储过程调用,系统会返回错误信息。 但是删除存储过程后,用户重新定义的同名称同参数的存储 过程可以被原来关联的对象使用。 删除存储过程的Transact-SQL语法结构为: DROP PROCEDURE schema_name. procedure ,.n 4 触发器概述 触发器是一种特殊类型的存储过程,这种存储过程能够 在某个规定的事件发生时触发执行。触发器通常可以强制执 行一定的业务规则,以保持数据完整性、检查数据有效性、 实现数据库管理任务和一些附加的功能。 触发器是数据库中比较高级的应用,灵活使用触发器可以 大大增强应用程序的健壮性、数据库的可恢复性和数据库的 可管理性。同时可以使开发人员和数据库管理员实现一些复 杂的功能,简化开发步骤,降低开发成本,增加开发效率, 提高数据库的可靠性。 4.1 触发器的特点 触发器是一种特殊的存储过程,除了存储过程的特点外 ,它还另外有以下特点: 触发器是自动执行的,可以在一定条件下触发。 触发器可以同步数据库的相关表,进行级联更改。 触发器可以实现更复杂的安全检查。它可以实现比CHECK 更复杂的业务规则,还可以引用其他表中的列。 触发器可以实现数据库的管理任务。如DDL触发器,在 DDL语句执行后触发,可以实现一些统一的数据库管理 策略。 4.2 触发器的种类 1. DML触发器 DML触发器是在执行数据操作语言事件时被调用的触发器, 其中数据操作语言事件包括:INSERT、UPDATE和DELETE语句。 触发器中可以包含复杂的Transact-SQL语句,触发器整体被看 作一个事务,可以回滚。 2. DDL触发器 与DML触发器类似,与DML不同的是,它相应的触发事件是 由数据定义语言引起的事件,包括:CREATE、ALTER和DROP语句 ,DDL触发器用于执行数据库管理任务,如调节和审计数据库运 转。DDL触发器只能在触发事件发生后才会调用执行,即它只能 是AFTER类型的。 4.3 inserted表和deleted表 触发器中两个比较特殊的对象:inserted表和deleted表。 在使用触发器过程中,SQL Server使用到了两张特殊的临时表 ,分别是inserted表和deleted表。这两张表都存在于高速缓存 中(当然,如果内存不够用,也可能存储在硬盘上),实际上是 事务日志的视图,它们与创建了触发器的表有着相同的结构。 5 触发器设计规则 5.1 确定触发器的种类 首先用户应根据相应的触发事件确定到底是DML触发器还 是DDL触发器,如果是DML触发器,用户在要根据数据操作类 型确定是INSERT、UPDATE还是DELETE触发器,然后再根据约 束规则,是希望触发事件发生后还是发生前来触发执行触发 器,从而确定是AFTER还是INSTEAD OF类型的触发器。 对于DDL触发器,它只有AFTER一种类型,只需根据触发事 件的类型确定触发器,来做出相应的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论