《数据库原理与应用》(第三版) 课件 第8章 存储过程和触发器.pdf
文本预览下载声明
第8章存储过程和触发器
· 8.1存储过程
· 8.2触发器
2023/9/9
第8章存储过程和触发器
8.1存储过程
8.1.1存储过程的概念
◆存储过程是指封装了可重用代码的、存储在服务器上的程序模块或例程。存储过程
是数据库对象之一,它类似于其他高级编程语言中的过程或子程序,编译成可执行
代码后保存在服务器上,可多次调用。
◆其特点体现在:
可以接受多个输入参数,能够以多输出参数的格式返回多个值。
在服务器端运行,使用EXECUTE(简写为EXEC)语句来执行。
可以调用其他存储过程,也可以被其他语句或存储过程调用,但不能直接在表
达式中使用。
具有返回状态值,表明被调用是成功还是失败。但不返回取代其名称的值,这
是它与函数的不同之处。
存储过程已在服务器注册。
2023/9/9
8.1存储过程
存储过程的优点主要体现在:
提高程序的执行效率。存储过程执行在第一次被执行以后,其执行规划就驻留在
高速缓冲存储器中。在以后的每次操作中,只需从高速缓冲存储器中调用已编译
好的二进制代码执行即可,而不必重新编译再执行,从而提高了执行效率。
具有较高的安全特性。作为一种数据库对象,存储过程要求拥有相应权限的用户
才能执行它。同时,它也提供了一种更为灵活的安全性管理机制:用户可以被授
予权限来执行存储过程,而不必对存储过程中引用的对象拥有访问权限。
如果一个存储过程是用于更新某一个数据表的,那么只要用户拥有执行该存储
过程的权限,他就可以通过执行该存储过程的方法来实现对指定数据表的更新
操作,而不必直接拥有对该数据表操作的权限。
2023/9/9
8.1存储过程
减少网络通信流量。由于存储过程在服务器端执行,用户每次只需发出一
条执行命令,而不必发出存储过程所有的冗长代码,因而减少了网络的数
据流量。
允许模块化程序设计,提高代码的可重用性。存储过程一旦被创建,以后
就可以在所有程序中多次调用。这有利于程序的结构化设计,提高程序的
可维护性和代码的可重用性。
2023/9/9
8.1存储过程
8.1.2存储过程的类型
过程。SQL存储过程是指出由SQL语言编写而形成的存储过程,它是SQL语句的
集中是作为类的公共静态方法实现的。
目前常使用的是SQL存储过程,所以本书要介绍的也就是这类存储过程。
根据来源和应用目的的不同,又可以将存储过程分为用户存储过程、系统存储过
程和扩展存储过程。
2023/9/9
8.1存储过程
1.系统存储过程
系统存储过程是SQL Server 2008本身定义的、当作命令来执行的一类
存储过程。它主要用于管理SQL Server数据库和显示有关数据库及用
户的信息,通常前缀“sp_”。
例如,sp_addrolemember就是一个用于为数据库角色添加成员的系统
存储过程。从逻辑结构看,系统存储过程出现在每个系统定义数据库
和用户定义数据库的sys构架中。读者最好能够熟悉一些常用的系统存
储过程,以免重复开发。
2.用户存储过程
用户存储过程是指由用户通过利用SQL语言编写的、具有特定功能的
一类存储过程。由于系统存储过程以“sp_”为前缀,扩展存储过程以
“xp_”,所以用户存储过程在定义时最好不要使用“sp_”或“xp_”为前
缀。如果需要,用户存储过程应以“up_”为前缀,“u”是单词user的头
字母。
本章将主要介绍用户存储过程的定义、修改和删除等基本管理操作。
2023/9/9
8.1存储过程
3.扩展存储过程
扩展存储过程是指SQL Server的实例可以动态加载和运行的动态链接库(
DL
显示全部