第9章 存储过程的创建和使用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9.1.1 存储过程的概念
存储过程有以下特点:
存储过程中可以包含一条或多条 Transact-
SQL语句。 存储过程可以接受输入参数并可以返回输出 值。 在一个存储过程中可以调用另一个存储过程。 存储过程可以返回执行情况的状态代码给调 用它的程序。
9.1.2 存储过程的优点
使用存储过程有很多优点,具体如下:
9.2.2 使用Transact-SQL语句创 建存储过程
可以使用 CREATE PROCEDURE 命令创建
存储过程,考虑下列几个事项: CREATE PROCEDURE 语 句 不 能 与 其 他 SQL语句在单个批处理中组合使用。 必须具有数据库的 CREATE PROCEDURE 权限。 只能在当前数据库中创建存储过程。 不要创建任何使用 sp_ 作为前缀的存储过程。
9.2.2 使用Transact-SQL语句创 建存储过程
例9-2-3:创建一个带有参数的存储过程
Stu_Age,该存储过程根据传入的学生编号, 在 T_STUDENT 中计算此学生的年龄,并根 据程序的执行结果返回不同的值,程序执行 成功,返回整数0,如果执行出错,则返回错 误号。
9.3 执行存储过程
9.1.3 存储过程的分类
在SQL Server 2005中,用户自定义存储过
程有两种类型: Transact-SQL 存储过程和 CLR存储过程。 Transact-SQL 存 储 过 程 : 是 指 保 存 的 Transact-SQL语句集合。 CLR 存 储 过 程 : 是 指 对 Microsoft .NET Framework 公共语言运行时 (CLR) 方法的引 用,可以接受和返回用户提供的参数。
程有一个输入参数“学号”,在执行时需要 传入一个学号值。 例9-3-4:执行存储过程Stu_Age,该存储过 程有一个输入参数“学号”,另外,还有一 个输出参数 @Age。存储过程执行完后,有 一个返回的状态值,这个值可以从变量 @ErrorValue得到。
9.4 查看和修改存储过程
9.4.1 查看存储过程
9.1.1 存储过程的概念
在使用Transact-SQL语言编程的过程中,可
以将某些需要多次调用的实现某个特定任务 的代码段编写成一个过程,将其保存在数据 库中,并由SQL Server服务器通过过程名来 调用它们,这些过程就叫做存储过程。 存储过程在创建时就被编译和优化,调用一 次以后,相关信息就保存在内存中,下次调 用时可以直接执行。
9.3 执行存储过程
其中,各选项的含义如下:
EXECUTE:执行存储过程的命令关键字。 @return_status:是一个可选的整型变量,保存存
储过程的返回状态。 procedure_name:指定执行的存储过程的名称。 @procedure_name_var:是局部定义变量名,代 表存储过程名称。 @parameter:是在创建存储过程时定义的过程参 数。
9.3 执行存储过程
它是一个无参的存储过程。 注意:如果省略 EXECUTE 关键字,则存储 过程必须是批处理中的第一条语句,否则会 出错。 例9-3-2:执行存储过程StuScoreInfo。
例 9-3-1 :执行前面创建的 StuInfo 存储过程,
9.3 执行存储过程
例9-3-3:执行存储过程Stu_Info,该存储过
系统存储过程:由系统自动创建,系统存储过程出
现在每个系统定义数据库和用户定义数据库的 sys 构架中。在 SQL Server 2005 中,可将 GRANT、 DENY和REVOKE权限应用于系统存储过程。 用户自定义存储过程:是指封装了可重用代码的模 块或例程,由用户创建,能完成某一特定的功能。 可以接受输入参数,返回输出参数。
第9章 存储过程的创建和使用
本章学习目标
了解存储过程的概念
了解使用存储过程的优点 了解系统存储过程的特点及用途
掌握创建存储过程的方法
掌握执行存储过程的方法
掌握查看和修改存储过程的方法
掌握删除存储过程的方法
9.1 概述
http://www.gelishfw.com/ http://www.gybcny.com/ http://www.hd8go.com/ http://www.sj93.cn/ http://www.mdwxz88.com/ http://www.oemgc.com/ http://www.189288.com/ http://www.hzp580.com http://www.yjoem.com/ http://www.oemdg.com/ http://www.oemfy.com/ http://www.xcdnpx.com/ http://www.yanjigz.com/ http://www.189286.com/ http://www.xcdnpx.com/ http://www.dgxcdn.com http://www.dgxcpx.com/ http://www.xcwxpx.com/ http://www.xunchi-px.com/ http://www.donghuijc.com/http://www.oemfy.com/http://www.0759mz.com/http://www.lczx188 .com/ http://www.189287.com/ http://www.ystdzkj.com/ http://www.023gree.com/ http://www.glwxz.com/ http://www.023midea.net/ http://www.023chigo.com/http://www.023aux.com/ http://www.023haier.net/ http://www.023xiu.com/ http://www.51xiu.org/ http://www.023vatti.com/ http://www.meidix.com/ http://www.ystdzkj.com/ http://www.ystmach.com/ http://www.ystcode.com/ http://www.hthqdb.com/http://www.023midea.net/ http://www.gz-bestally.com/ http://www.gz-bestally.com/ http://www.gz-bestally.com/ http://www.ystmach.com/ http://www.ystcode.com/ http://www.gzdzbjbw.com/ http://www.gzdzbjbw.com/
sp_stored_procedures[[@sp_name=]'name'][,[
实现了模块化编程,一个存储过程可以被多
个用户共享和重用。 存储过程具有对数据库立即访问的功能。 使用存储过程可以加快程序的运行速度。 使用存储过程可以减少网络流量。。 使用存储过程可以提高数据库的安全性。
9.1.3 存储过程的分类
在SQL Server中的存储过程分为两类:即系统提供 的存储过程和用户自定义的存储过程。
语句的原始文本加密。 <sql_statement>:要包含在过程中的一个 或多个Transact-SQL语句。
9.2.2 使用Transact-SQL语句创 建存储过程
例9-2-2:创建一个存储过程StuScoreInfo,
完 成 的 功 能 是 在 表 T_STUDENT、 表 T_COURSE 和表 t_SCORE 中查询以下字段: 班级、学号、姓名、性别、课程名称、考试 分数。 例9-2-2:创建一个带有参数的存储过程 Stu_Info,该存储过程根据传入的学生编号, 在T_STUDENT中查询此学生的信息。
9.2.2 使用Transact-SQL语句创 建存储过程
CREATE PROCEDURE的语法形式如下:
CREATE { PROC | PROCEDURE [schema_name.] procedure_name
}
[ { @parameter [ type_schema_name. ] data_type } [ VARYING ] [ = default ] [ OUT | OUTPUT ] ] [ ,...n ] [ WITH ENCRYPTION ] AS { <sql_statement> [;][ ...n ] }[;] <sql_statement> ::= { [ BEGIN ] statements [ END ] }
程 sp_help:用于显示存储过程的参数及其数 据类型 sp_help [[@objname=] name] 参数name为要查看的存储过程的名称。
9.4.1 查看存储过程
sp_helptext:用于显示存储过程的源代码
sp_helptext [[@objname=] name] 参数name为要查看的存储过程的名称。
9.4.1 查看存储过程
sp_depends:用于显示和存储过程相关的
数据库对象 sp_depends [@objname=]’object’ 参数 object 为要查看依赖关系的存储过程的 名称。
9.4.1 查看存储过程
sp_stored_procedures:用于返回当前数据库中 的存储过程列表
存储过程创建成功后,保存在数据库中。在
SQL Server中可以使用 EXECUTE命令来直 接执行存储过程,语法形式如下: [ [ EXEC[UTE]] {[@return_status=] {procedure_name|@procedure_name_ var} [[@parameter=]{value|@variable[O UTPUT]|[DEFAULT]}[,...n]]}]
9.2.2 使用Transact-SQL语句创 建存储过程
其中,各参数的意义如下:
schema_name:过程所属架构的名称。 procedure_name:新存储过程的名称。
@ parameter:过程中的参数。
[ type_schema_name. ] data_type:参数
源自文库
9.2 创建存储过程
在SQL Server中,可以使用两种方法创建存
储过程: 当创建存储过程时,需要确定存储过程的三 个组成部分: 所有的输入参数以及传给调用者的输出参数。 被执行的针对数据库的操作语句,包括调用 其他存储过程的语句。 返回给调用者的状态值,以指明调用是成功 还是失败。
9.2.1 使用SQL Server管理控制 台创建存储过程
在SQL Server管理控制台中,选择指定的服
务器和数据库,展开数据库中的“可编程性” 文件夹,右击其中的“存储过程”,在弹出 的快捷菜单中选择“新建存储过程 … ”选项。 例9-2-1:创建一个名称为“StuInfo”的存储 过程,要求完成以下功能:在 T_STUDENT 表中查询 05541 班学生的学号、姓名、性别、 出生日期和政治面貌五个字段的内容。
以及所属架构的数据类型。 VARYING:指定作为输出参数支持的结果集。 仅适用于cursor参数。
9.2.2 使用Transact-SQL语句创 建存储过程
default:参数的默认值。
OUTPUT:指示参数是输出参数。 ENCRYPTION:将 CREATE PROCEDURE
1.使用 SQL Server 管理控制台查看用户创
建的存储过程 在SQL Server管理控制台中,选择指定的服 务器和数据库,展开数据库中的“可编程性” 文件夹,单击其中的“存储过程”,在右边 的窗口中就会显示出当前数据库中的所有存 储过程。
9.4.1 查看存储过程
2.使用系统存储过程查看用户创建的存储过