第10章存储过程_第1页
第10章存储过程_第2页
第10章存储过程_第3页
第10章存储过程_第4页
第10章存储过程_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第1010章章 存储过程存储过程 存储过程是一种高效、安全的访问数据库的方法。主要被用存储过程是一种高效、安全的访问数据库的方法。主要被用于提高数据库中检索数据的速度,也经常被用来访问数据或管理于提高数据库中检索数据的速度,也经常被用来访问数据或管理被修改的数据。本章介绍如何创建存储过程、管理存储过程。被修改的数据。本章介绍如何创建存储过程、管理存储过程。 10.1 存储过程概述存储过程概述10.1.1 存储过程的概念存储过程的概念存储过程是在数据库服务器执行的一组存储过程是在数据库服务器执行的一组T-SQL语句的集合,语句的集合,经编译后存放在数据库服务器端。存储过程作为一个单元进经编译后

2、存放在数据库服务器端。存储过程作为一个单元进行处理并以一个名称来标识。它能够向用户返回数据,向数行处理并以一个名称来标识。它能够向用户返回数据,向数据库中写入或修改数据,还可以执行系统函数和管理操作,据库中写入或修改数据,还可以执行系统函数和管理操作,用户在编程中只需要给出存储过程的名称和必需的参数,就用户在编程中只需要给出存储过程的名称和必需的参数,就可以方便地调用它们。存储过程与其他编程语言中的过程有可以方便地调用它们。存储过程与其他编程语言中的过程有些类似。些类似。 10.1.1 存储过程的概念存储过程的概念SQL Server提供了三种类型的存储过程。提供了三种类型的存储过程。1) 用

3、户存储过程:用户在用户存储过程:用户在SQL Server中通过采用中通过采用SQL语语句创建存储过程,称为用户存储过程。本章后面介绍的存储句创建存储过程,称为用户存储过程。本章后面介绍的存储过程操作主要是指用户存储过程。过程操作主要是指用户存储过程。2) 系统存储过程:系统存储过程:SQL Server 中的许多管理活动都是通中的许多管理活动都是通过一种特殊的存储过程执行的,这种存储过程被称为系统存过一种特殊的存储过程执行的,这种存储过程被称为系统存储过程。从物理意义上讲,系统存储过程存储在源数据库中,储过程。从物理意义上讲,系统存储过程存储在源数据库中,并且带有并且带有 sp_ 前缀。从逻

4、辑意义上讲,系统存储过程出现在前缀。从逻辑意义上讲,系统存储过程出现在每个系统定义数据库和用户定义数据库的每个系统定义数据库和用户定义数据库的 sys 构架中。用户构架中。用户自创建的存储过程最好不要以自创建的存储过程最好不要以“sp_”开头,因为当用户存储开头,因为当用户存储过程与系统存储过程重名时,调用系统存储过程。过程与系统存储过程重名时,调用系统存储过程。3) 扩展存储过程:扩展存储过程:SQL Server允许用户使用编程语言允许用户使用编程语言(例如(例如 C)创建自己的外部例程。扩展存储过程是指)创建自己的外部例程。扩展存储过程是指 Microsoft SQL Server 的实

5、例可以动态加载和运行的的实例可以动态加载和运行的 DLL。扩展存储过程直接在扩展存储过程直接在 SQL Server 的实例的地址空间中运行,的实例的地址空间中运行,可以使用可以使用 SQL Server 扩展存储过程扩展存储过程 API 完成编程。完成编程。 10.1.2 存储过程的优点存储过程的优点存储过程是一种独立的数据库对象,它在服务器上创建和存储过程是一种独立的数据库对象,它在服务器上创建和运行,与存储在客户端计算机本地的运行,与存储在客户端计算机本地的T-SQL语句相比,它具有语句相比,它具有以下优点:以下优点:1. 模块化程序设计模块化程序设计每个存储过程就是一个模块,可以用它来

6、封装功能模块。每个存储过程就是一个模块,可以用它来封装功能模块。存储过程一旦创建,以后即可在程序中调用任意多次。这可存储过程一旦创建,以后即可在程序中调用任意多次。这可以改进应用程序的可维护性,并允许应用程序统一访问数据以改进应用程序的可维护性,并允许应用程序统一访问数据库。库。2. 提高执行效率,改善系统系能提高执行效率,改善系统系能存储过程比一般的存储过程比一般的SQL语句执行速度快。存储过程在创建语句执行速度快。存储过程在创建时已被编译,每次执行时不必再编译,而时已被编译,每次执行时不必再编译,而SQL语句每次执行语句每次执行都需要编译。另外,存储过程已在服务器注册。存储过程具都需要编译

7、。另外,存储过程已在服务器注册。存储过程具有安全特性(例如权限)和所有权链接,以及可以附加到它有安全特性(例如权限)和所有权链接,以及可以附加到它们的证书。用户可以被授予权限来执行存储过程而不必直接们的证书。用户可以被授予权限来执行存储过程而不必直接对存储过程中引用的对象具有权限。对存储过程中引用的对象具有权限。 10.1.2 存储过程的优点存储过程的优点3. 减少网络通信流量减少网络通信流量当要执行一个具有数百条当要执行一个具有数百条T-SQL语句组成的命令时,每次语句组成的命令时,每次都要从客户端重复发送这些语句,而使用存储过程只需从客都要从客户端重复发送这些语句,而使用存储过程只需从客户

8、端发送一条执行存储过程的单独语句既可实现相同的功能,户端发送一条执行存储过程的单独语句既可实现相同的功能,从而减少了网络流量。从而减少了网络流量。4. 强制应用程序的安全性强制应用程序的安全性参数化存储过程有助于保护应用程序不受参数化存储过程有助于保护应用程序不受 SQL Injection 攻击。攻击。SQL Injection是一种攻击方法,它可以将恶意代码插是一种攻击方法,它可以将恶意代码插入传递给入传递给SQL Server供分析和执行的字符串中。供分析和执行的字符串中。 10.2 创建存储过程创建存储过程要使用存储过程,首先要创建一个存储过程,下面介绍存要使用存储过程,首先要创建一个

9、存储过程,下面介绍存储过程的创建和执行。储过程的创建和执行。10.2.1 创建存储过程创建存储过程可以使用可以使用SQL Server Management Studio和和T-SQL的的CREATE PROCEDURE语句来创建存储过程。语句来创建存储过程。1. 使用使用SQL Server Management Studio创建存储创建存储过程过程下面通过一个例子介绍使用下面通过一个例子介绍使用SQL Server Management Studio创建存储过程。创建存储过程。 10.2.1 创建存储过程创建存储过程【例【例10-1】使用】使用SQL Server Management S

10、tudio创建存储创建存储过程过程ProAvgPrice,用于输出所有图书的平均价格。,用于输出所有图书的平均价格。解:其操作步骤如下:解:其操作步骤如下:1) 启动启动SQL Server Management Studio。2) 在在“对象资源管理器对象资源管理器”中展开中展开SS服务器节点。服务器节点。3) “数据库数据库”“Library”“可编程性可编程性”“存储过程存储过程”节点,右击,节点,右击,在弹出的快捷菜单中选择在弹出的快捷菜单中选择“新建存储过程新建存储过程”命令,如图命令,如图10-1所示。所示。4) 在右侧的在右侧的“查询编辑器查询编辑器”中出现存储过程模板,可以参照

11、模板在中出现存储过程模板,可以参照模板在其中输入存储过程的其中输入存储过程的T-SQL语句。单击工具栏中的按钮,出现语句。单击工具栏中的按钮,出现“指定模板指定模板参数的值参数的值”对话框,如图对话框,如图10-2所示。在其中设置模板中相关参数的值。所示。在其中设置模板中相关参数的值。 10.2.1 创建存储过程创建存储过程 图图10-1 选择选择“新建存储过程新建存储过程”命令命令 图图10-2 存储过程模板与存储过程模板与“指定模板参数的值指定模板参数的值”对话对话框框 图图10-3 在模板中创建存储过程在模板中创建存储过程ProAvgPrice 图图10-4 显示存储过程显示存储过程Pr

12、oAvgPrice 10.2.1 创建存储过程创建存储过程本例创建的存储过程本例创建的存储过程ProAvgPrice不需要输入参数、输出参数,在模不需要输入参数、输出参数,在模板中将其删除。板中将其删除。相应相应SQL语句为:语句为:SELECT AVG(Price) AS 平均价格平均价格 FROM Book单击工具栏中的按钮,出现单击工具栏中的按钮,出现“指定模板参数的值指定模板参数的值”对话框,输入存储对话框,输入存储过程名为过程名为ProAvgPrice,如图,如图10-3所示。单击所示。单击“确定确定”按钮,在按钮,在“指定模指定模板参数的值板参数的值”对话框中设置的参数值写入模板中

13、。对话框中设置的参数值写入模板中。(5)单击工具栏中的按钮,将其保存在数据库中。此时选中)单击工具栏中的按钮,将其保存在数据库中。此时选中“存储存储过程过程”节点,右击,在弹出的快捷菜单中选择节点,右击,在弹出的快捷菜单中选择“刷新刷新”命令,会看到命令,会看到ProAvgPrice存储过程,如图存储过程,如图10-4所示。所示。 10.2.1 创建存储过程创建存储过程2. 使用使用CREATE PROCEDURE语句创建存储过程语句创建存储过程用用SQL语句创建存储过程的语法格式如下:语句创建存储过程的语法格式如下:CREATE PROCEDURE 存储过程名存储过程名 ;分组号;分组号 形

14、参变量形参变量1 数据类型数据类型 VARYING = 默认值默认值 OUTPUT 形参变量形参变量n 数据类型数据类型 VARYING = 默认值默认值 OUTPUT WITH RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION FOR REPLICATIONASSQL 语句系列语句系列 说明:说明:1) 该语句可以创建永久存储过程,也可以创建一个在一个该语句可以创建永久存储过程,也可以创建一个在一个会话过程中临时使用的局部存储过程,名称前加一个会话过程中临时使用的局部存储过程,名称前加一个#;还可以;还可以创建一个在所有会话中临时使用的全局存储过

15、程,名称前加两创建一个在所有会话中临时使用的全局存储过程,名称前加两个个#。 10.2.1 创建存储过程创建存储过程2) 分组号:整数,可作为同名过程分组的后缀序号,如分组号:整数,可作为同名过程分组的后缀序号,如Ts1,Ts2可定义属于一组,同组的过程可以用一条可定义属于一组,同组的过程可以用一条DROP PROCEDURE删除命令全部删除掉。删除命令全部删除掉。3) 形参变量:过程中的参数。在形参变量:过程中的参数。在CREATE PROCEDURE过程中可以声明一个或多个参数。必须在执行过程中可以声明一个或多个参数。必须在执行过程时提供每个所声明参数的值(除非定义了该参数的默认过程时提供

16、每个所声明参数的值(除非定义了该参数的默认值)。值)。4) 数据类型:参数的数据类型。所有数据类型均可以用数据类型:参数的数据类型。所有数据类型均可以用作存储过程的参数。不过,作存储过程的参数。不过,CURSOR数据类型只能用于数据类型只能用于OUTPUT参数。如果指定的数据类型为参数。如果指定的数据类型为CURSOR,也必须同,也必须同时指定时指定VARYING和和OUTPUT关键字。关键字。5) VARYING:指定作为输出参数支持的结果集(由存储:指定作为输出参数支持的结果集(由存储过程动态构造,内容可以变化)。仅适用于游标参数。过程动态构造,内容可以变化)。仅适用于游标参数。6) 默认

17、值:参数的默认值。如果定义了默认值,不必指默认值:参数的默认值。如果定义了默认值,不必指定该参数的值即可执行过程。默认值必须是常量或定该参数的值即可执行过程。默认值必须是常量或NULL。10.2.1 创建存储过程创建存储过程7) OUTPUT:表明参数是返回参数。该选项的值可以返:表明参数是返回参数。该选项的值可以返回给调用语句。回给调用语句。8) RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION :RECOMPILE表明表明SQL Server不会缓存该不会缓存该过程的被引用的对象,该过程将在运行时重新编译。过程的被引用的对象,该过程将在运行时重

18、新编译。ENCRYPTION表示表示SQL Server加密加密Syscomment表中包含表中包含CREATE PROCEDURE语句文本的条目。语句文本的条目。9) FOR REPLICATION:指定不能在订阅服务器上执行:指定不能在订阅服务器上执行为复制创建的存储过程。为复制创建的存储过程。10) SQL语句系列:过程中要包含的任意数目和类型的语句系列:过程中要包含的任意数目和类型的SQL语句,但是不能使用创建数据库及其对象的语句,也不语句,但是不能使用创建数据库及其对象的语句,也不能使用能使用USE语句选择其他数据库。语句选择其他数据库。存储过程可以参考表、视图或其他存储过程。如果在

19、存储存储过程可以参考表、视图或其他存储过程。如果在存储过程中创建了临时表,那么该临时表只在该存储过程中有效,过程中创建了临时表,那么该临时表只在该存储过程中有效,当存储过程执行结束时,临时表也消失。存储过程可以嵌套当存储过程执行结束时,临时表也消失。存储过程可以嵌套使用。使用。 10.2.1 创建存储过程创建存储过程【例【例10-2】创建一个简单的存储过程】创建一个简单的存储过程ProSeBook,查询所有,查询所有图书的信息。图书的信息。解:选择数据库解:选择数据库Library,单击工具栏中,单击工具栏中“新建查询新建查询”按钮,按钮,新建查询编辑器,输入对应的程序,最后单击按钮,如图新建

20、查询编辑器,输入对应的程序,最后单击按钮,如图10-5所示。对应的程序如下:所示。对应的程序如下:CREATE PROCEDURE ProSeBook ASSELECT * FROM Book 图图10-5 使用使用CREATE PROCEDURE语句创建存储过程语句创建存储过程 10.2.1 创建存储过程创建存储过程【例【例10-3】创建一个带有输入参数的存储过程】创建一个带有输入参数的存储过程ProIdBook,查询指定读者编号的读者的借书记录。其中输入参数用于接查询指定读者编号的读者的借书记录。其中输入参数用于接收读者编号值,设有默认值收读者编号值,设有默认值“G001”。解:程序如下:

21、解:程序如下:CREATE PROCEDURE ProIdBook UserId char(6)=G001ASSELECT * FROM LendingWHERE UserId = UserId如果没有参数输入时,默认查询学号为如果没有参数输入时,默认查询学号为G001的读者借书的读者借书记录。记录。 10.2.1 创建存储过程创建存储过程【例【例10-4】创建一个带有输入参数和输出参数的存储过程】创建一个带有输入参数和输出参数的存储过程ProcBookCate,返回指定读者所借图书的图书类别。其中输,返回指定读者所借图书的图书类别。其中输入参数用于接收读者的编号,输出参数用于返回该读者所借入

22、参数用于接收读者的编号,输出参数用于返回该读者所借图书的图书类别。图书的图书类别。解:对应的程序如下:解:对应的程序如下:CREATE PROCEDURE ProcBookCate 读者编号读者编号 char(6),类别类别 nvarchar(20) OUTPUTASSELECT 类别类别 = BookCate FROM BookCategory, Lending, Book WHERE UserId = 读者编号读者编号 AND BookCategory.BkCateId = Book.BkCateId AND Lending .BookId = Book .BookId 10.2.2 执行

23、存储过程执行存储过程1. 使用使用SQL Server Management Studio执行存储执行存储过程过程下面通过一个例子介绍如何使用下面通过一个例子介绍如何使用SQL Server Management Studio执行存储过程。执行存储过程。【例【例10-5】使用】使用SQL Server Management Studio执行存储执行存储过程过程ProIdBook,查询指定学号的学生的借书记录。,查询指定学号的学生的借书记录。解:其操作步骤如下:解:其操作步骤如下:1) 启动启动SQL Server Management Studio。2) 在在“对象资源管理器对象资源管理器”中

24、展开中展开SS服务器节点。服务器节点。3) 展开展开“数据库数据库”“Library”“可编程性可编程性”“存储过程存储过程”节点,节点,选择选择ProIdBook,右击,在弹出的快捷菜单中选择,右击,在弹出的快捷菜单中选择“执行存储过程执行存储过程”命令,命令,如图如图10-6所示。所示。10.2.2 执行存储过程执行存储过程4) 进入进入“执行过程执行过程”对话框,输入要查询的读者编号对话框,输入要查询的读者编号G001,如图,如图10-7所示。所示。5)设置完成后单击设置完成后单击“确定确定”按钮。执行结果如图按钮。执行结果如图10-8所示。所示。图图10-6 选择选择“执行存储过程执行

25、存储过程”命令命令 图图10-7 输入参数输入参数 图图10-8 “执行存储过程执行存储过程”结果结果 10.2.2 执行存储过程执行存储过程2. 使用使用EXECUTE语句执行存储过程语句执行存储过程可以使用可以使用EXECUTE或或EXEC语句来执行存储在服务器上的语句来执行存储在服务器上的存储过程。其语法形式如下:存储过程。其语法形式如下: EXEC UTE 状态值状态值 = 存储过程名存储过程名 ;分组号;分组号 | 存储过程变量存储过程变量 参数参数1 = 参量值参量值 | 变量变量 OUTPUT |DEFAULT 参数参数n = 参量值参量值 | 变量变量 OUTPUT | DEF

26、AULT WITH RECOMPILE 各参数的说明如下:各参数的说明如下:1) 状态值:是一个可选的整形变量,用于保存存储过程状态值:是一个可选的整形变量,用于保存存储过程的返回状态。这个变量在用于的返回状态。这个变量在用于EXECUTE语句时,必须已在批语句时,必须已在批处理、存储过程或函数中声明。处理、存储过程或函数中声明。 10.2.2 执行存储过程执行存储过程2) 存储过程变量:是局部定义的变量名,代表存储过存储过程变量:是局部定义的变量名,代表存储过程名称。程名称。3) 参数:是在创建存储过程时定义的参数。当使用该参数:是在创建存储过程时定义的参数。当使用该选项时,各参数的枚举顺序

27、可以与创建存储过程时的定义顺选项时,各参数的枚举顺序可以与创建存储过程时的定义顺序不一致,否则两者顺序必须一致。序不一致,否则两者顺序必须一致。4) 参量值:是存储过程中输入参数的值。如果参数名称参量值:是存储过程中输入参数的值。如果参数名称没有指定,参量值必须按创建存储过程时的定义顺序给出。没有指定,参量值必须按创建存储过程时的定义顺序给出。如果在创建存储过程时指定了参数的默认值,执行时可以不如果在创建存储过程时指定了参数的默认值,执行时可以不再指定。再指定。5) 变量:用来存储参数或返回参数的变量。当存储过变量:用来存储参数或返回参数的变量。当存储过程中有输出参数时,只能用变量来接收输出参

28、数的值,并在程中有输出参数时,只能用变量来接收输出参数的值,并在变量后加上变量后加上OUTPUT关键字。关键字。6) OUTPUT:用来指定参数是输出参数。该关键字必须:用来指定参数是输出参数。该关键字必须与与“变量变量”连用,表示输出参数的值由变量接收。连用,表示输出参数的值由变量接收。7) DEFAULT:表示参数使用定义时指定的默认值。:表示参数使用定义时指定的默认值。8) WITH RECOMPILE:表示执行存储过程时强制重新:表示执行存储过程时强制重新编译。编译。 10.2.2 执行存储过程执行存储过程【例【例10-6】执行【例】执行【例10-2】创建的简单存储过程】创建的简单存储

29、过程ProSeBook,查询所有图书的信息。查询所有图书的信息。解:对应的程序如下:解:对应的程序如下:EXECUTE ProSeBook【例【例10-7】执行【例】执行【例10-3】创建的带输入参数的存储过程】创建的带输入参数的存储过程ProIdBook,查询指定编号的读者的借书记录,参量值为,查询指定编号的读者的借书记录,参量值为“T001”。解:对应的程序如下:解:对应的程序如下:EXECUTE ProIdBookUserId = T00110.2.2 执行存储过程执行存储过程【例【例10-8】执行【例】执行【例10-4】创建的带输入和输出参数的存储】创建的带输入和输出参数的存储过程过程

30、ProcBookCate,返回指定读者所借图书的图书类别。,返回指定读者所借图书的图书类别。解:对应的程序如下:解:对应的程序如下:USE LibraryDECLARE 读者编号读者编号 char(6) DECLARE 类别类别 nvarchar(20)SET 读者编号读者编号 = T002EXECUTE ProcBookCate读者编号读者编号 = 读者编号读者编号, 图图10-9 执行存储过程执行存储过程ProcBookCate 类别类别 = 类别类别 OUTPUTPRINT 读者编号读者编号 + 读者所借图书的图书目录是读者所借图书的图书目录是: + 类别类别执行结果如图执行结果如图10

31、-9所示。所示。 10.3 管理存储过程管理存储过程存储过程的管理主要包括存储过程的查看、修改、重命名存储过程的管理主要包括存储过程的查看、修改、重命名和删除。和删除。10.3.1 查看存储过程查看存储过程1. 使用使用SQL Server Management Studio查看存储查看存储过程过程下面通过一个例子介绍如何使用下面通过一个例子介绍如何使用SQL Server Management Studio查看存储过程。查看存储过程。【例【例10-9】使用】使用SQL Server Management Studio来查看来查看【例【例10-1】创建的存储过程】创建的存储过程ProAvgPr

32、ice。解:其操作步骤如下:解:其操作步骤如下:1) 启动启动SQL Server Management Studio。2) 在在“对象资源管理器对象资源管理器”中展开中展开SS服务器节点。服务器节点。 10.3.1 查看存储过程查看存储过程3) 展开展开“数据库数据库”“Library”“可编程性可编程性”“存储过存储过程程”“dbo.ProAvgPrice”节点,右击,在出现的快捷菜单中选择节点,右击,在出现的快捷菜单中选择“编写编写存储过程脚本为存储过程脚本为”“CREATE到到”“新查询编辑器窗口新查询编辑器窗口”命令,如图命令,如图10-10所示。所示。4) 在右边的编辑器窗口中出现

33、存储过程在右边的编辑器窗口中出现存储过程ProAvgPrice源代码,如图源代码,如图10-11所示。可以对其修改。所示。可以对其修改。 图图10-10 查看存储过程查看存储过程ProAvgPrice 图图10-11 查看存储过程查看存储过程ProAvgPrice源代码源代码 10.3.1 查看存储过程查看存储过程2. 使用命令方式查看存储过程使用命令方式查看存储过程SQL Server 2008可以使用命令方式即调用系统存储过程可以使用命令方式即调用系统存储过程来查看有关存储过程的信息。来查看有关存储过程的信息。(1) sp_help用于显示存储过程的信息,如存储过程的参数、创建日期用于显示

34、存储过程的信息,如存储过程的参数、创建日期等。其语法如下:等。其语法如下:EXECUTE sp_help 存储过程名存储过程名(2) sp_helptext用于显示存储过程的源代码。其语法如下:用于显示存储过程的源代码。其语法如下:EXECUTE sp_helptext 存储过程名存储过程名(3) sp_depends 用于显示和存储相关的数据库对象。其语法如下:用于显示和存储相关的数据库对象。其语法如下:EXECUTE sp_ depends 存储过程名存储过程名 10.3.1 查看存储过程查看存储过程【例【例10-10】使用相关系统存储过程查询【例】使用相关系统存储过程查询【例10-4】创

35、建的存】创建的存储过程储过程ProcBookCate的所有者、创建时间和各个参数的信息。的所有者、创建时间和各个参数的信息。解:程序如下:解:程序如下:EXEC sp_help ProcBookCate执行结果如图执行结果如图10-12所示所示. 图图10-12 使用系统存储过程使用系统存储过程sp_help查看信息查看信息 10.3.1 查看存储过程查看存储过程【例【例10-11】使用相关系统存储过程查询【例】使用相关系统存储过程查询【例10-4】创建的存】创建的存储过程储过程ProcBookCate的源代码。的源代码。解:程序如下:解:程序如下:EXEC sp_helptext ProcB

36、ookCate执行结果如图执行结果如图10-13所示。所示。 图图10-13 使用系统存储过程使用系统存储过程sp_helptext查看信息查看信息 10.3.2 修改存储过程修改存储过程在创建存储过程之后,可以对其进行修改。在创建存储过程之后,可以对其进行修改。1. 使用使用SQL Server Management Studio修改存储修改存储过程过程下面通过一个例子介绍如果使用下面通过一个例子介绍如果使用SQL Server Management Studio修改存储过程。修改存储过程。【例【例10-12】使用】使用SQL Server Management Studio修改【例修改【例

37、10-3】所创建的存储过程】所创建的存储过程ProIdBook。解:其操作步骤如下:解:其操作步骤如下:1) 启动启动SQL Server Management Studio。2) 在在“对象资源管理器对象资源管理器”中展开中展开SS服务器节点。服务器节点。3) 展开展开“数据库数据库”“Library” “可编程性可编程性”“存储过存储过程程”“dbo.ProIdBook”节点,右击,在出现的快捷菜单中选择节点,右击,在出现的快捷菜单中选择“修改修改”命令,如图命令,如图10-14所示。所示。 10.3.2 修改存储过程修改存储过程 图图10-14 修改存储过程修改存储过程4) 此时右边的编

38、辑器窗口出现此时右边的编辑器窗口出现ProIdBook存储过程的源代码,可以存储过程的源代码,可以直接进行修改。修改完毕,单击工具栏中的直接进行修改。修改完毕,单击工具栏中的“!执行执行”按钮执行该存储过程,按钮执行该存储过程,完成修改。完成修改。 10.3.2 修改存储过程修改存储过程2. 使用使用ALTER PROCEDURE语句修改存储过程语句修改存储过程修改存储过程可以使用修改存储过程可以使用ALTER PROCEDURE语句以命语句以命令方式实现,修改存储过程不会更改原存储过程的权限,也令方式实现,修改存储过程不会更改原存储过程的权限,也不会影响相关的存储过程或触发器。其语法如下:不

39、会影响相关的存储过程或触发器。其语法如下:ALTER PROCEDURE 参数参数1 数据类型数据类型 = 默认值默认值 OUTPUT 参数参数n 数据类型数据类型 = 默认值默认值 OUTPUT WITH RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION FOR REPLICATIONASSQL 语句系列语句系列其中,各参数的含义与创建存储过程时对应参数的含义相同其中,各参数的含义与创建存储过程时对应参数的含义相同. 10.3.2 修改存储过程修改存储过程【例【例10-13】修改【例】修改【例10-2】创建的存储过程】创建的存储过程ProSeBo

40、ok,查,查询所有图书的名称、作者和出版社信息。询所有图书的名称、作者和出版社信息。解:对应的程序如下:解:对应的程序如下:ALTER PROCEDURE ProSeBook ASSELECT BookName , Author , Publish FROM Book10.3.3 重命名存储过程重命名存储过程1. 使用使用SQL Server Management Studio重命名存重命名存储过程储过程下面通过一个例子介绍如何使用下面通过一个例子介绍如何使用SQL Server Management Studio重命名存储过程重命名存储过程.【例【例10-14】使用】使用SQL Server Management Studio将【例将【例10-1】创建的存储过程】创建的存储过程ProAvgPrice重命名为重命名为ProAvgPriceTest。解:其操作步骤如下:解:其操作步骤如下:1) 启动启动SQL Server Management Studio。2) 在在“对象资源管理器对象资源管理器”中展开中展开SS服务器节点。服务器节点。3) 展开展开“数据库数据库”“Library”“可编程性可编程性”“存储过程存储过程”“dbo. ProAvgPrice”节点,右击,在出现的快捷菜单中选择节点,右击,在出现的快捷菜单中选择“重命名重命名”命令,命令,如图如图10-15所

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论