数据库 第六节 存储过程.pdfVIP

  • 8
  • 0
  • 约1.14万字
  • 约 15页
  • 2017-06-05 发布于湖北
  • 举报
第六章 存储过程 存储过程是一系列 SQL 语句,变量,控制语句构成的集合,作为一个单元 处理。每个存储过程有一个名词,应用程序可通过名词调用的方法执行存储过程。 合理使用存储过程,可使数据管理更加方便,减少应用程序代码的修改。 6.1 存储过程概述 存储过程是一系列 SQL 语句构成的集合,可以将若干 SQL 语句封装在一个 存储过程中。用户在编写 SQL 脚本时,就可以使用存储过程代替相应的多条 SQL 语句,使得脚本清晰,易于理解。 存储过程是不同于表的另外一种数据库对象,可以接收输入参数,返回输出 参数或状态值,执行存储过程可以提高数据存取性能,存储过程可以多次执行, 提高重用性。 存储过程由输入输出参数,返回值,编程语句组成。可以向存储过程输入多 个参数值,也可以向存储过程的调用者传递多个输出值;存储过程只能有一个返 回值,表示存储过程调用成功还是失败;存储过程的编程语句可以是 SQL 控制 语句、变量、表达式,访问数据库的语句,调用其它存储过程的语句。图 6-1 显 示了 YBPMS 数据的存储过程。 图6-1 YBPMS 数据库的存储过程 存储过程具有下面一些优点: (1) 存储过程具有安全性和所有权链接,以及可以附加的它们的证书。用户可 以被授权来执行存储过程,而不必直接对存储过程中操作的对象具有权 限。 (2 ) 存储过程可以强制应用程序的安全性。参数化存储过程有助于使应用程序 不受 SQL 注入攻击。 (3 ) 存储过程可重复调用。存储过程创建后,可以在应用程序调用任意多次, 方便维护应用程序,允许应用程序统一访问数据。 (4 ) 存储过程可以减少网络通信流量。一个需要几十几百行 SQL 语句的操作 可以通过几条执行存储过程的语句来执行,而不需要在网络中发送几十几 百行代码。 在 SQL Server2008 中,根据实现存储过程方式和内容的不同,存储过程可 分为用户自定义存储过程,系统存储过程,扩展存储过程。 (1)用户自定义存储过程 用户自定义存储过程指用户根据应用需要创建的存储过程。 (2 )系统存储过程 系统存储过程是指由 SQL Server2008 定义的,用于 SQL Server 管理操作的 存储过程。例如,sp_who, xp_logininfo 就是 2 个系统存储过程。大多数系统存储 过程带有 sp_前缀。图 6-2 显示了系统存储过程。 图6-2 系统存储过程 (3 )扩展存储过程 扩展存储过程是指 Microsoft SQL Server 的实例可以动态加载和运行的DLL 。扩 展存储过程运行使用第三方编程语言(例如 C )创建自己的外部例程。扩展存储 过程直接在 SQL Server 的实例地址空间运行,可以使用 SQL Server 扩展存储过 程 API 完成编程。 6.2 创建和执行存储过程 创建存储过程使用 CREATE PROCEDURE 语句,执行存储过程使用 EXECUTE 语句。 创建存储过程的一般格式为: CREATE PROC [EDURE] 存储过程名 [@参数名 数据类型 [=default] [OUTPUT]] [, … , n] [WITH ENCRYPTION] AS 变量定义语句 SQL 语句 其中: default :参数的默认值,必须为常量。创建存储过程时,如果给出了默认值, 那么在执行存储过程时,如果没有向具有默认值的参数传递参数值,参数的 值就为默认值。默认值可以包含通配符(%、_ 、[ ]、和[ ^ ])。 OUTPUT :指示参数是输出参数。使用 OUTPUT 参数将值返回给过程的调 用者。 WITH ENCRYPTION :指示 SQL Server 将 create procedure 语句的原始文本 转换为模糊格式。模糊代码的输出在 SQL Server 的任何目录

文档评论(0)

1亿VIP精品文档

相关文档