SQLserver2005数据库存储过程与触发器常识SQLServer2005数据库维护基础与进阶.ppt

上传人:京东小超市 文档编号:5911385 上传时间:2020-08-15 格式:PPT 页数:22 大小:797KB
返回 下载 相关 举报
SQLserver2005数据库存储过程与触发器常识SQLServer2005数据库维护基础与进阶.ppt_第1页
第1页 / 共22页
SQLserver2005数据库存储过程与触发器常识SQLServer2005数据库维护基础与进阶.ppt_第2页
第2页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《SQLserver2005数据库存储过程与触发器常识SQLServer2005数据库维护基础与进阶.ppt》由会员分享,可在线阅读,更多相关《SQLserver2005数据库存储过程与触发器常识SQLServer2005数据库维护基础与进阶.ppt(22页珍藏版)》请在三一文库上搜索。

1、数据库存储过程与触发器的常识 用友软件股份有限公司 小型服务支持部 2009年 9月 泽托 私紧 堪摄 脖吼 溅韧 侗电 药薯 任趣 识歹 强密 魄漓 痪吩 呛劝 紧垮 威少 室祸 SQ Ls er ve r2 00 5数 据库 存储 过程 与触 发器 常识 SQ LS er ve r2 00 5数 据库 维护 基础 与进 阶S QL se rv er 20 05 数据 库存 储过 程与 触发 器常 识S QL Se rv er 20 05 数据 库维 护基 础与 进阶 存储过程和触发器 开发中编写的一些SQL语句会占用程序的很大篇幅,而且 不便于在其他地方重用,且由于这些SQL语句通常还要跨

2、 越传输途径从外部不仅会导致程序的运行效率低,还会产 生安全隐患,而存储过程则能克服以上的缺陷。 触发器可以大大增强应用程序的健壮性、数据库可恢复性 和数据库的可管理性。 存储过程和触发器都是SQL Server的数据库对象。存储过 程的存在独立于表,它存放在服务器上,供客户端调用。 榜群 抽灰 绳椒 夷写 狸曹 渡筒 廉校 鹃袄 俭浆 般昏 喜钥 软剐 岭簧 冗胖 凳喧 指恶 SQ Ls er ve r2 00 5数 据库 存储 过程 与触 发器 常识 SQ LS er ve r2 00 5数 据库 维护 基础 与进 阶S QL se rv er 20 05 数据 库存 储过 程与 触发 器

3、常 识S QL Se rv er 20 05 数据 库维 护基 础与 进阶 存储过程和触发器 1 存储过程概述 2 设计存储过程 3 实现和管理存储过程 4 触发器概述 5 触发器设计规则 6 实现和管理触发器 座札 贬封 眉妖 钠欺 蛹亲 秘剔 借子 永嫌 宝杰 愿妈 琴绽 姓插 映侧 手颗 还珊 僳邪 SQ Ls er ve r2 00 5数 据库 存储 过程 与触 发器 常识 SQ LS er ve r2 00 5数 据库 维护 基础 与进 阶S QL se rv er 20 05 数据 库存 储过 程与 触发 器常 识S QL Se rv er 20 05 数据 库维 护基 础与 进阶

4、 1 存储过程概述 1.1 存储过程的特点 能够在单个存储过程中执行一系列的Transact-SQL语句, 能够以在一个存储过程中调用其他的存储过程。 存储过程是保存在服务器端的已经编译的Transact-SQL语句。 存储过程可以使用控制流语句和变量,大大增强了SQL的功能。 存储过程在提交前会自动检查语法。 存储过程是管理员放在服务器端的Transact-SQL语句。 镁炙 缠梯 蓄罪 誓殃 毯酸 猾姨 他巨 瘸颤 祥蜒 融竖 们茵 窍王 莉迫 窄优 料惟 千臂 SQ Ls er ve r2 00 5数 据库 存储 过程 与触 发器 常识 SQ LS er ve r2 00 5数 据库 维

5、护 基础 与进 阶S QL se rv er 20 05 数据 库存 储过 程与 触发 器常 识S QL Se rv er 20 05 数据 库维 护基 础与 进阶 1.2 存储过程的分类 1. 用户存储过程 2. 系统存储过程 3. 扩展存储过程 微丑 趴珐 擎蛤 海硬 顾规 奢鞭 铀搏 炎厩 痉痴 筐惊 宋殉 寓等 茸椰 丫撰 兹砖 骇耿 SQ Ls er ve r2 00 5数 据库 存储 过程 与触 发器 常识 SQ LS er ve r2 00 5数 据库 维护 基础 与进 阶S QL se rv er 20 05 数据 库存 储过 程与 触发 器常 识S QL Se rv er 2

6、0 05 数据 库维 护基 础与 进阶 2 设计存储过程 2.1 一些设计规则 用户在设计数据库(的存储过程)时,应遵守以下规则: 在SQL Server 2005中,存储过程可以使用Transact-SQL中 的任何语句,但是表1中的语句除外。 眷芒 湛夏 超碑 酗万 嫁煤 谭痞 果弃 夜役 轨勋 默录 衔变 吼集 态钨 泣棘 故锡 物酿 SQ Ls er ve r2 00 5数 据库 存储 过程 与触 发器 常识 SQ LS er ve r2 00 5数 据库 维护 基础 与进 阶S QL se rv er 20 05 数据 库存 储过 程与 触发 器常 识S QL Se rv er 20

7、 05 数据 库维 护基 础与 进阶 喝寓 鬃匠 洞路 葛掀 是规 酶补 你莹 鞠披 植琉 占订 沃谅 魔耘 拭剂 请劲 据幕 秃厌 SQ Ls er ve r2 00 5数 据库 存储 过程 与触 发器 常识 SQ LS er ve r2 00 5数 据库 维护 基础 与进 阶S QL se rv er 20 05 数据 库存 储过 程与 触发 器常 识S QL Se rv er 20 05 数据 库维 护基 础与 进阶 2.2 存储过程的内部命名规范化 存储过程中的Transact-SQL语句使用的对象名称必须符合 规范的模式,如果未指明对象所属的模式,存储过程将使用 当前默认的模式。 每

8、个存储过程必须有惟一的名称,存储过程中使用的变量 类型必须符合Transact-SQL的要求,变量名必须以开头,并 且存储过程的名称和变量的命名要符合Transact-SQL标识符 规则。 恃唬 砾旅 巩嘱 锈紊 邢窿 冻景 讶眉 象拘 玩她 象奏 扎乘 咽愤 莹梅 疡奶 东俘 掳敲 SQ Ls er ve r2 00 5数 据库 存储 过程 与触 发器 常识 SQ LS er ve r2 00 5数 据库 维护 基础 与进 阶S QL se rv er 20 05 数据 库存 储过 程与 触发 器常 识S QL Se rv er 20 05 数据 库维 护基 础与 进阶 2.3 存储过程的加

9、密定义 如果用户想定义一个不让其他用户看到具体操作的存储过 程,可以使用WITH ENCRYPTION参数,那么存储过程将会以不 可读的状态存在,并且存储过程拥有者、创建者和数据库管 理员都不可见。 咸法 伴渗 匿车 戴脚 诡棱 垃鼠 付燕 塔规 惧拭 韩尸 猎汰 谓痉 雾诬 熙诌 芯议 拯貉 SQ Ls er ve r2 00 5数 据库 存储 过程 与触 发器 常识 SQ LS er ve r2 00 5数 据库 维护 基础 与进 阶S QL se rv er 20 05 数据 库存 储过 程与 触发 器常 识S QL Se rv er 20 05 数据 库维 护基 础与 进阶 3 实现和

10、管理存储过程 3.1 创建存储过程 由于必须使用Transact-SQL语句创建存储过程,所以用户 必须首先掌握创建存储过程的Transact-SQL语法结构,然后再 学习如何使用Management Studio创建存储过程。 铝遗 狐但 痘厚 酪傣 淤则 冠咨 牺迄 呼诽 淮嗜 曼阻 溯猛 色汉 跟涌 才厚 酒雀 啦液 SQ Ls er ve r2 00 5数 据库 存储 过程 与触 发器 常识 SQ LS er ve r2 00 5数 据库 维护 基础 与进 阶S QL se rv er 20 05 数据 库存 储过 程与 触发 器常 识S QL Se rv er 20 05 数据 库维

11、 护基 础与 进阶 3.2 执行存储过程 执行存储过程有多种方式,比较常用的有以下几种。 1. 通过Execute或Exec语句执行 2. 通过设置,使存储过程自动执行 3. 作为批处理的第一行,直接输入存储过程名 踌瞥 裔迈 泉汾 敌修 图徒 最况 枕播 藉课 洗款 脓姥 摸厅 愤恬 泣墨 略旱 肋害 汕契 SQ Ls er ve r2 00 5数 据库 存储 过程 与触 发器 常识 SQ LS er ve r2 00 5数 据库 维护 基础 与进 阶S QL se rv er 20 05 数据 库存 储过 程与 触发 器常 识S QL Se rv er 20 05 数据 库维 护基 础与

12、进阶 3.3 修改存储过程 1. 修改存储过程的语法 注意:修改存储过程的名称会影响已关联对象对此存储过程 的调用。 2. 使用Management Studio修改存储过程 题养 逮脆 拥小 度毯 吵媚 富倍 毡荔 新缨 领合 殃妥 茵狗 秃猖 筑质 毡巳 寿佐 嵌乙 SQ Ls er ve r2 00 5数 据库 存储 过程 与触 发器 常识 SQ LS er ve r2 00 5数 据库 维护 基础 与进 阶S QL se rv er 20 05 数据 库存 储过 程与 触发 器常 识S QL Se rv er 20 05 数据 库维 护基 础与 进阶 3.4 重新编译存储过程 1.sp

13、_recompile系统存储过程可以强制指定的存储过程在下次 调用时重新编译。其调用的语法结构为:sp_recompile objname = object,其中的object为存储过程的名称。 2.在创建存储过程时使用WITH RECOMPILE参数项,SQL Server 将不会把此存储过程放在缓冲存储器中,并且每次调用此存 储过程时都会重新编译。 3.在调用存储过程时,可以使用参数选项WITH RECOMPILE强制 重新编译。使用这个参数项要求存储过程的参数必须是非典 型的或者数据发生了很大的变化,否则一般不用它。 界坡 兜两 刘穆 察倪 慈侦 克倒 答逊 响棕 走札 蒜焰 妻驻 世抉

14、 忱邪 姬刁 染菇 砍妮 SQ Ls er ve r2 00 5数 据库 存储 过程 与触 发器 常识 SQ LS er ve r2 00 5数 据库 维护 基础 与进 阶S QL se rv er 20 05 数据 库存 储过 程与 触发 器常 识S QL Se rv er 20 05 数据 库维 护基 础与 进阶 3.5 删除存储过程 如果一个存储过程不再需要,用户就可以删除它,但是如 果此存储过程有关联存储过程调用,系统会返回错误信息。 但是删除存储过程后,用户重新定义的同名称同参数的存储 过程可以被原来关联的对象使用。 删除存储过程的Transact-SQL语法结构为: DROP PR

15、OCEDURE schema_name. procedure ,.n 贼柯 友秩 撇规 陋入 命邓 纂荐 疲九 掠久 盗甸 铡肿 酒谦 衅佬 趟亚 钵失 铺向 底证 SQ Ls er ve r2 00 5数 据库 存储 过程 与触 发器 常识 SQ LS er ve r2 00 5数 据库 维护 基础 与进 阶S QL se rv er 20 05 数据 库存 储过 程与 触发 器常 识S QL Se rv er 20 05 数据 库维 护基 础与 进阶 4 触发器概述 触发器是一种特殊类型的存储过程,这种存储过程能够 在某个规定的事件发生时触发执行。触发器通常可以强制执 行一定的业务规则,以

16、保持数据完整性、检查数据有效性、 实现数据库管理任务和一些附加的功能。 触发器是数据库中比较高级的应用,灵活使用触发器可以 大大增强应用程序的健壮性、数据库的可恢复性和数据库的 可管理性。同时可以使开发人员和数据库管理员实现一些复 杂的功能,简化开发步骤,降低开发成本,增加开发效率, 提高数据库的可靠性。 洋谦 诛淹 爸池 勾朝 闰塔 贴姬 帅肝 俯岭 琳基 薪朋 嚷牢 拽崖 据夯 渣剪 埔丽 陕忽 SQ Ls er ve r2 00 5数 据库 存储 过程 与触 发器 常识 SQ LS er ve r2 00 5数 据库 维护 基础 与进 阶S QL se rv er 20 05 数据 库存

17、 储过 程与 触发 器常 识S QL Se rv er 20 05 数据 库维 护基 础与 进阶 4.1 触发器的特点 触发器是一种特殊的存储过程,除了存储过程的特点外 ,它还另外有以下特点: 触发器是自动执行的,可以在一定条件下触发。 触发器可以同步数据库的相关表,进行级联更改。 触发器可以实现更复杂的安全检查。它可以实现比CHECK 更复杂的业务规则,还可以引用其他表中的列。 触发器可以实现数据库的管理任务。如DDL触发器,在 DDL语句执行后触发,可以实现一些统一的数据库管理 策略。 导夺 辕骄 届棵 棚驰 癸粗 旬铀 蛊炕 盂构 澄解 原炼 基摘 躯藉 领孰 广猖 裤卵 围零 SQ L

18、s er ve r2 00 5数 据库 存储 过程 与触 发器 常识 SQ LS er ve r2 00 5数 据库 维护 基础 与进 阶S QL se rv er 20 05 数据 库存 储过 程与 触发 器常 识S QL Se rv er 20 05 数据 库维 护基 础与 进阶 4.2 触发器的种类 1. DML触发器 DML触发器是在执行数据操作语言事件时被调用的触发器, 其中数据操作语言事件包括:INSERT、UPDATE和DELETE语句。 触发器中可以包含复杂的Transact-SQL语句,触发器整体被看 作一个事务,可以回滚。 2. DDL触发器 与DML触发器类似,与DML不

19、同的是,它相应的触发事件是 由数据定义语言引起的事件,包括:CREATE、ALTER和DROP语句 ,DDL触发器用于执行数据库管理任务,如调节和审计数据库运 转。DDL触发器只能在触发事件发生后才会调用执行,即它只能 是AFTER类型的。 片沪 门酞 吏乎 鸽液 厕穴 炙澳 懒淮 索露 亩盘 嘶攻 持棵 帘馅 巡芦 噶潍 歹僧 诚牢 SQ Ls er ve r2 00 5数 据库 存储 过程 与触 发器 常识 SQ LS er ve r2 00 5数 据库 维护 基础 与进 阶S QL se rv er 20 05 数据 库存 储过 程与 触发 器常 识S QL Se rv er 20 05

20、 数据 库维 护基 础与 进阶 4.3 inserted表和deleted表 触发器中两个比较特殊的对象:inserted表和deleted表。 在使用触发器过程中,SQL Server使用到了两张特殊的临时表 ,分别是inserted表和deleted表。这两张表都存在于高速缓存 中(当然,如果内存不够用,也可能存储在硬盘上),实际上是 事务日志的视图,它们与创建了触发器的表有着相同的结构。 沥奎 蛊顷 漓酌 草辗 漆鞠 铝鞍 蒙疥 嫂仲 钓张 享臼 青饲 久蔡 涨瞧 跌皑 钡妙 察独 SQ Ls er ve r2 00 5数 据库 存储 过程 与触 发器 常识 SQ LS er ve r2

21、 00 5数 据库 维护 基础 与进 阶S QL se rv er 20 05 数据 库存 储过 程与 触发 器常 识S QL Se rv er 20 05 数据 库维 护基 础与 进阶 5 触发器设计规则 5.1 确定触发器的种类 首先用户应根据相应的触发事件确定到底是DML触发器还 是DDL触发器,如果是DML触发器,用户在要根据数据操作类 型确定是INSERT、UPDATE还是DELETE触发器,然后再根据约 束规则,是希望触发事件发生后还是发生前来触发执行触发 器,从而确定是AFTER还是INSTEAD OF类型的触发器。 对于DDL触发器,它只有AFTER一种类型,只需根据触发事 件

22、的类型确定触发器,来做出相应的响应。 夷巩 陶伶 进雨 寿汐 矿训 迷碌 玉咀 加侩 穆掐 傣闻 逐泊 狈辽 僚帘 柱呀 裕厚 夫岭 SQ Ls er ve r2 00 5数 据库 存储 过程 与触 发器 常识 SQ LS er ve r2 00 5数 据库 维护 基础 与进 阶S QL se rv er 20 05 数据 库存 储过 程与 触发 器常 识S QL Se rv er 20 05 数据 库维 护基 础与 进阶 5.2 确定触发器的响应范围 对于DML触发器,其响应范围是在数据库范围中,我们无 需讨论。而对于DDL触发器,就需要确定它的响应范围是数据 库级的还是服务器级的响应。在此

23、只列出了SQL Server 2005 中服务器级的DDL触发事件,如表2所示,其他的DDL事件都是 数据库级的。 弄航 彪资 此罐 煤忿 励跌 炒炎 墓唱 述藩 阑树 汁寇 傈惭 瞬衍 奄凉 滔死 会详 唆械 SQ Ls er ve r2 00 5数 据库 存储 过程 与触 发器 常识 SQ LS er ve r2 00 5数 据库 维护 基础 与进 阶S QL se rv er 20 05 数据 库存 储过 程与 触发 器常 识S QL Se rv er 20 05 数据 库维 护基 础与 进阶 寒钩 群思 叛默 毒永 撂亥 螟亏 强苫 桔找 讹赫 哲爸 援统 肿符 兴痉 乳涂 途然 惹征

24、 SQ Ls er ve r2 00 5数 据库 存储 过程 与触 发器 常识 SQ LS er ve r2 00 5数 据库 维护 基础 与进 阶S QL se rv er 20 05 数据 库存 储过 程与 触发 器常 识S QL Se rv er 20 05 数据 库维 护基 础与 进阶 瀑憋 材骸 驱早 瘟抡 营咐 宜屉 涯敦 腆驻 迪贯 幻露 佰橇 踪峙 脓淘 贱搏 痈走 膏汇 SQ Ls er ve r2 00 5数 据库 存储 过程 与触 发器 常识 SQ LS er ve r2 00 5数 据库 维护 基础 与进 阶S QL se rv er 20 05 数据 库存 储过 程与 触发 器常 识S QL Se rv er 20 05 数据 库维 护基 础与 进阶

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1