- 1、本文档共49页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8.6节 存储过程与触发器 8.6.1 存储过程的基本概念 8.6.2 创建存储过程 8.6.3 执行存储过程 8.6.4 管理存储过程 8.6.5 触发器的基本概念 8.6.6 创建触发器 8.6.7 管理触发器 8.6.1 存储过程的基本概念 在使用Transact-SQL语言编程的过程中,可以将某些多 次调用以实现某个特定任务的代码段编写成一个过程, 将其保存在数据库中,并由SQL Server服务器通过过程 名调用它们,这些过程就叫做存储过程。 存储过程分为系统存储过程和用户自定义的存储过程。系统存储过程由 SQL Server 2000提供,用户可以直接使用。用户自定义存储过程需要用户自己创建和维护。系统存储过程使用“sp_”作为前缀。 存储过程的优点: 可以在单个存储过程中执行一系列 SQL 语句 。 可以从自己的存储过程内引用其它存储过程,这可 以简化一系列复杂语句。 存储过程在创建时即在服务器上进行编译,所以执行起来比单个 SQL 语句快。 存储过程一旦执行一次后,其执行的计划就会驻留在计算机的高速缓冲存储器中。其后对同一个存储过程的调用就可以直接利用编译后在高速缓存中的二进制形式来完成操作。 8.6.2 创建存储过程 在SQL-Server中,可以使用三种方法创建存储过程: 使用向导创建存储过程。 使用SQL-Server企业管理器创建存储过程。 使用Transact-SQL语句中的Create Procedure命令创建存储过程。 默认情况下,创建存储过程的许可权归属数据库的所有者,数据库的所有者可以授权给其他用户。 8.6.2.1 使用向导创建存储过程 (1)在企业管理器中选中某个SQL-Server服务器中的数据库,这里选中scdb数据库。选择工具菜单中的“向导”菜单项,系统会弹出“选择向导”对话框。选中“创建存储过程向导”选项 。 (2)单击“确定”按钮,出现“欢迎使用创建存储过程向导”对话框 。 (3)单击“下一步”按钮,出现“选择数据库”对话框,该对话框用于选择创建存储过程中使用的数据库。 (4)选择数据库,单击“下一步”按钮,出现“选择操作对象”对话框,在该对话框中,列出了所有可选择的表,以及可以对表进行的数据库操作,即插入删除和更新。 (5)单击“下一步”按钮,出现确认存储过程信息对话框。 8.6.2.2 使用企业管理器创建存储过程 (1)在企业管理器中选中某个SQL-Server服务器中的数据库,这里选中scdb数据库。右键单击数据库下的“存储过程”选项,弹出快捷菜单, (2)在快捷菜单中选择“新建存储过程”命令出现“新建存储过程”对话框。 (3)在“新建存储过程”对话框的“文本”列表框中输入存储过程名称和程序语句 CREATE PROCEDURE query_proc AS Select * from sc 存储过程query_proc完成的功能是从sc表中查询全部数据。 (4)单击“检查语法”按钮,执行语法正确性检验。 (5)单击“确定”按钮,返回企业管理器窗口,可以看到所创建的存储过程。 8.6.2.3 使用Transact-SQL语句创建存储过程 CREATE PROC [ EDURE ] procedure_name [ { @parameter data_type } [ VARYING ] [ = default ] [ OUTPUT ]] [ ,...n ] [ WITH { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ] AS sql_statement procedure_name:新存储过程的名称。过程名必须符合标识符规则,且对于数据库及其所有者必须唯一。 @parameter:过程中的参数。 data_type:参数的数据类型。 Default:参数的默认值。 OUTPUT:表明参数是返回参数。 AS:指定过程要执行的操作。 sql_statement:过程中要包含的任意数目和类型的 Transact-SQL 语句。 例: 不带有参数的存储过程 下面的存储过程从scdb数据库的三个表中返回学生选课情况,结果包括学号、姓名、课程名、成绩。该存储过程不使用任何参数 。 例:带有参数的存储过程 设计一个带有参数的存储过程,该参数用于传递查询成绩的范围,根据该参数检索出符合该分数段的学生选课信息。 8.6.3 执行存储过程 [ [ EXEC [ UTE ] ] { [ @return_status = ]
文档评论(0)