数据库系统14-存储过程和触发器.ppt
《数据库系统14-存储过程和触发器.ppt》由会员分享,可在线阅读,更多相关《数据库系统14-存储过程和触发器.ppt(42页珍藏版)》请在三一办公上搜索。
1、第 14 讲 存储过程和触发器,一、存储过程 1 存储过程概述 2 存储过程的使用和管理 二、使用触发器 1 触发器概述 2 触发器的使用和管理 3 使用存储过程维护数据完整性,练习 写出 SELECT 语句,1 从 titles 表的 title_id,type,advance列中查询所有的 advance 不大于¥5500 的business 类型的书.2 从 titles 表查询出版日期(pubdate)在1/1/1991 12/31/1991 之间的书号(title_id)和出版日期(pubdate).,答案,1 select title_id,type,advance from ti
2、tles where advance=¥5500 and type=business 2 select title_id,pubdate from titles where pubdate between 1/1/1991 and 12/31/1991,上机:实验 5 存储过程和触发器,1 P324 试一试 P327 试一试 P330 试一试1 P330 试一试2 P337 试一试*P339 试一试*P340 试一试,一、存储过程 1 存储过程概述,对于开发前端程序的开发者来说,存储过程无疑是很重要的工具,它可以使开发者在不了解表架构的情况下使用存储过程对数据进行处理。同时,由于存储过程具有封
3、装的概念,因此当逻辑规则改变时,可以在不影响前端程序设计的情况下对后端程序进行修改。,存储过程(Stored Procedure)是一组预先编译好的 T-SQL 代码。用户无需了解程序内部是如何撰写的,只需对其进行调用即可,所以它的定义很简单,就是一个包含T-SQL命令的程序对象。对于撰写存储过程的开发者或数据库管理员而言,撰写存储过程是为了避免用户自己使用查询数据,从而达到安全灵活高效和易于管理等目的。,使用存储过程的优点:执行速度快 在有大量批处理的 T-SQL 代码要重复执行时,使用存储过程可以极大地提高运行效率.模块化的程序设计 存储过程经过了一次创建以后,可以被无数次调用.用户可以独
4、立于应用程序而对存储过程进行修改.减少网络通讯量 调用存储过程只需要用一条语句.增强系统的安全性 禁止用户用代码或企业管理器访问数据.,存储过程从功能上可分为三种:系统存储过程 在 SQL Server 中将许多管理和查询活动都事先使用系统存储过程加以定义,用户或管理员只要执行系统存储过程就可以获得系统信息.系统存储过程在 SQL Server 服务启动时就被加载到内存中.扩展存储过程 管理员可以使用程序设计语言(如c语言)来建立自己的外部程序.扩展存储过程大都是以 XP 开头,放在 Master 数据库中.用户存储过程 通过撰写 T-SQL命令的方式实现.,表13-1 常用的系统存储过程,创
5、建存储过程 创建存储过程的简单语法如下:CREATE PROC procedure_name WITH RECOMPILE|ENCRYPTION AS sql_statement procedure_name:存储过程的名字.其命名必须符合规范.RECOMPILE:在执行完存储过程以后不在高速缓存里保留存储过程的备份.所以每次执行存储过程时都要对存储过程进行重新编译和优化.,2 存储过程的使用和管理,ENCRYPTION:存储过程作为数据库对象将在 syscomment 表中留下完整的代码等信息.使用 ENCRYPTION 参数以后将对访问这些数据的入口进行加密.问题是这种方法在加密时并没有使
6、用密钥,所以很容易破解.dOMNAR 的dSQLSRVD 实用程序(一个免费软件),可以使具有 SysAdmin 角色的用户对加密的对象进行解密.,CREATE PROC 存储过程名称AS T-SQL命令,最简单的存储过程语法是,存储过程分为两类,一类是没有参数的存储过程,另一类是有参数的存储过程.,下例用于创建一个简单的存储过程,AS下面有一段 select 命令.,USE pubsGOCREATE PROC author_informationAS SELECT au_fname,phone,addressFROM authors ORDER BY City GO,用户也可以搭配条件选择.
7、,USE pubsGOCREATE PROC author_informationASIF USER=dbo SELECT*FROM authors ORDER BY City ELSESELECT au_id,City FROM authors ORDER BY CityGO,EXEC author_information,执行没有参数的存储过程相当简单:,但是没有参数的存储过程在实际使用时并不多见,因为存储过程在撰写时多作为函数使用,输入几个参数,经过存储过程运算后返回用户所要的数据.存储过程主要由三种类型的参数:输入参数;输出参数;返回值.,输入参数是在调用这个存储过程之前必须输入的参数
8、,而该参数仅在程序中使用,并不会再返回给用户.,USE pubsGOCREATE PROC USP_FindOrder OrderID intASSELECT OrderID,OrderDate,Status FROM Order where OrderID=OrderID,EXEC USP_FindOrder 43670,下例用于创建一个简单的存储过程,但这个存储过程中包含了复杂的查询语句:USE pubsGOCREATE PROCEDURE author_informationAS SELECT au_lname,au_fname,title,pub_nameFROM authors a
9、JOIN titleauthor taON a.au_id=ta.au_id JOIN titles tON t.title_id=ta.title_id JOIN publishers pON t.pub_id=p.pub_idGO,但加入下面一段语句会更好一些.USE pubs GO IF EXISTS(SELECT name FROM sysobjects WHERE name=au_info AND type=P)DROP PROCEDURE au_info GO 这个例子首先检查在表中是否存在名字相同的存储过程的记录,如果有则先删除原有的存储过程,再创建与之同名的存储过程.,可以使用
10、企业管理器创建存储过程:(1)在树型结构上选择相应的数据库(2)在展开的数据库中选中存储过程节点(3)右击,选新建存储过程(4)在对话框中,输入正确的 T-SQL 语句(5)单击检查语法按钮(6)单击确定按钮 系统允许创建临时存储过程:局部或全局临时存储过程,只要在存储过程前加“#”“#”.,管理存储过程 可以使用 sp_helptext 命令查看创建存储过程的文本信息,如:USE pubs GO sp_helptext byroyalty GO 演示 可用 sp_help 查看存储过程的一般信息.可用 sp_rename 修改存储过程的名字.,可以使用企业管理器浏览存储过程的信息:(1)在树
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 14 存储 过程 触发器

链接地址:https://www.31ppt.com/p-6578597.html