- 1、本文档共53页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章1存储过程_new
第7章1 存储过程 (P140) 7.1 存储过程概述 7.2 存储过程的基本操作 习题 7.1 存储过程概述 存储过程(Store Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带参数)来执行它。 在SQL中存储过程分为两类:系统存储过程和用户自定义存储过程。 系统存储过程就是系统创建的存储过程。目的在于能够方便地从系统表中查询信息或完成系统管理任务。 系统过程以“sp_”为前缀,主要存储在master数据库中,为数据库管理员所有。 尽管这些系统存储过程被放在master数据库中,但是仍可以在其他数据库对其进行调用,在调用时不必在存储过程名前加上数据库名。 而且在创建一个新的数据库时,一些系统存储过程会在新的数据库中自动创建。 用户自定义存储过程是由用户创建并能完成某一特定功能(如查询用户所需数据信息)的存储过程。 在本章中所涉及到的存储过程,主要是指用户自定义存储过程。 利用SQL Server创建一个应用程序时,运用Transact-SQL来进行编程,有两种方法: 一种是,在本地存储Transact-SQL程序,并创建应用程序向SQL Server发送命令来对结果进行处理。 另一种是,可以把部分Transact-SQL编写的程序作为存储过程存储在SQL Server中,并创建应用程序来调用存储过程,对数据结果进行处理。 一般采用第二种方法,使用存储过程,因为利用存储过程具有以下特点: (1)存储过程允许标准组件式编程 存储过程在被创建以后,可以在程序中多次调用,而不必重新写该存储过程的SQL语句。当对存储过程进行修改时,对调用它的应用程序源代码毫无影响。 (2)存储过程能够实现较快的执行速度 因为存储过程是预编译的,在首次运行一个存储过程时,查询优化器对其进行分析、优化,并给出最终被存在系统表中的执行计划。而批处理的Transact_SQL语句在每次运行时都要进行编译和优化,因此速度相对要慢一些。 (3)存储过程能够减少网络流量 当在客户计算机上调用存储过程时,网络中传送的只是该调用语句,否则将是多条SQL语句,从而增大了网络流量,降低网络负载。 (4)存储过程可被作为一种安全机制来充分利用 系统管理员通过对执行某一存储过程的权限进行限制,从而实现对相应的数据访问全限的限制,避免非授权用户对数据的访问,保证数据的安全。 7.2 存储过程的基本操作 在SQL Server 2000中,创建一个存储过程有三种方法: 一是使用创建存储过程向导, 二是利用Transact-SQL命令Create Procedure, 三是使用企业管理器。 在一个存储过程中,可以使用任何SQL语句,但是不包括下面的语句: Create Default, Create Procedure, Create Rule, Create Trigger, Create View。 当创建存储过程时,需要确定存储过程的3个组成部分: ①所有的输入参数以及传递给调用者的输出参数; ②被执行的针对数据库的操作语句,包括调用其他存储过程的语句; ③返回给调用者的状态值,以指明调用是成功还是失败。 7.2.1 使用向导创建存储过程 在企业管理器中,选择工具菜单中的向导选项,选择“创建存储过程向导”如图7.1所示,则出现欢迎使用创建存储过程向导对话框,如图7.2所示。 图7.1 新建SQL Server 组 图7.2 创建存储过程向导对话框 在图7.2的创建存储过程向导的帮助下,可以完成: 选择存储过程所在的数据库; 生成插入、删除或更新的存储过程; 编辑创建存储过程属性的Transact-SQL语句。 7.2.2 使用语句建立存储过程 使用Transact-SQL语句创建存储过程前,应该考虑下列几个事项: ①不能将 CREATE PROCEDURE 语句与其他 SQL 语句组合到一个批处理中。 ②创建存储过程的权限默认属于数据库的所有者,该所有者可将此权限授予其他用户。 ③存储过程是数据库对象,其名称必须遵守标识符规则。 ④只能在当前数据库中创建存储过程。 使用CREATE PROCEDURE创建存储过程的语法形式如下: (P143) CREATE PROC[EDURE] procedure_name [
文档评论(0)