当前位置:文档之家› [计算机]第10章 存储过程与触发器

[计算机]第10章 存储过程与触发器


h
8
10.1 存储过程概述
2. 存储过程的功能特点
SQL Server的存储过程可实现以下功能: (1)接收输入参数并以输出参数的形式为调用过程 或批处理返回多个值。 (2)包含执行数据库操作的编程语句,包括调用其 他过程。 (3)为调用过程或批处理返回一个状态值,以表示 成功或失败(及失败原因)。
2. 使用向导创建存储过程
h
12
10.2.1 创建存储过程
3. 使用CREATE PROCEDURE语句创建存储过程
使用CREATE PROCEDURE语句创建存储过程应该考虑以 下几个方面: ➢ (1)在一个批处理中,CREATE PROCEDURE语句不能 与其他SQL语句合并在一起。 ➢ (2)数据库所有者具有默认的创建存储过程的权限,它可 把该权限传递给其他的用户。 ➢ (3)存储过程作为数据库对象其命名必须符合标识符的命 名规则。 ➢ (4)只能在当前数据库中创建属于当前数据库的存储过程。
h
9
10.1 2)快速执行。 ➢ (3)减少网络通信量。 ➢ (4)提供安全机制。 ➢ (5)保证操作一致性。
h
10
1010..22 存储存过程储的创过建与使程用 的创建与使用
存储过程创建
1. 使用企业管理器创建存储过程
h
11
10.2.1 创建存储过程
FROM goods g INNER JOIN goods_classification gc ON g.classification_id = gc.classification_id 存储过程创建后,存储过程的名称存放在sysobject表中, 文本存放在syscomments表中。
h
15
10.2 存储过程的创建与使用
h
13
10.2.1 创建存储过程
创建存储过程语句的语法格式如下:
CREATE PROC[EDURE] procedure_name [; number ] [{@parameter data_type } [VARYING] [=default] [OUTPUT]] [, ...n ] [WITH { RECOMPILE | ENCRYPTION | RECOMPILE,
h
5
10.1 存储过程概述
(2)用户定义存储过程
是由用户创建并能完成某一特定功能(例如查询用 户所需数据信息)的存储过程。
它处于用户创建的数据库中,存储过程名前没有 前缀sp_。
h
6
10.1 存储过程概述
(3)临时存储过程
临时存储过程与临时表类似,分为局部临时存储过程和全 局临时存储过程,且可以分别向该过程名称前面添加“#” 或“# #”前缀表示。“#”表示本地临时存储过程,“# #”表 示全局临时存储过程。使用临时存储过程必须创建本地连 接,当SQL Server关闭后,这些临时存储过程将自动被删 除。
执行存储过程
执行存储过程的语法格式: [[EXEC[UTE]] {[@return_status=] procedure_name [;number]|@procedure_name_var} [[@parameter=]{value|@variable [OUTPUT]|[DEFAULT]] [ ,...n ] [WITH RECOMPILE ]
由于SQL Server支持重新使用执行计划,所以连接到SQL Server 2000的应用程序应使用sp_executesql系统存储过程, 而不使用临时存储过程。
h
7
10.1 存储过程概述
(4)扩展存储过程
扩展存储过程是SQL Server可以动态装载和执行 的动态链接库(DLL)。当扩展存储过程加载到 SQL Server中,它的使用方法与系统存储过程一 样。扩展存储过程只能添加到master数据库中, 其前缀是xp_。
h
16
10.2.2 执行存储过程
例如,执行例10-1的存储过程goods_info
在SQL查询分析器中输入命令: EXEC goods_info
运行的结果:
h
17
修改存储过程 10.2 存储过程的创建与使用
1. 使用企业管理器修改存储过程
2. 使用ALTER PROCEDURE语句修改存储过程
第10章 存储过程与触发器
h
1
本章内容
10.1 存储过程概述 10.2 存储过程的创建与使用 10.3 触发器概述 10.4 触发器的创建与使用 10.5 事务处理 10.6 SQL Server的锁机制
h
2
10.1 存储过程概述
存储过程是SQL Server服务器上一组预编 译的Transact-SQL语句,用于完成某项任 务,它可以接受参数、返回状态值和参数 值,并且可以嵌套调用。
h
3
10.1 存储过程概述
1. 存储过程的类型
SQL Server存储过程的类型包括:
系统存储过程 用户定义存储过程 临时存储过程 扩展存储过程
h
4
10.1 存储过程概述
(1)系统存储过程
是指由系统提供的存储过程,主要存储在master数据库中 并以sp_为前缀,它从系统表中获取信息,从而为系统管 理员管理SQL Server提供支持。
通过系统存储过程,SQL Server中的许多管理性或信息性 的活动(例如使用sp_depends、sp_helptexts可以了解数据 数据库对象、数据库信息)都可以顺利有效地完成。尽管 系统存储过程被放在master数据库中,仍可以在其他数据 库中对其进行调用(调用时,不必在存储过程名前加上数 据库名)。当创建一个新数据库时,一些系统存储过程会 在新数据库中被自动创建。
ENCRYPTION } ] [ FOR REPLICATION ] AS sql_statement [,...n ]
h
14
10.2.1 创建存储过程
例10-1 创建存储过程,从表goods和表 goods_classification的联接中返回商品名、商品类别、 单价。
CREATE PROCEDURE goods_info AS SELECT goods_name, classification_name, unit_price
相关主题