存储过程与触发器 (2).ppt
《存储过程与触发器 (2).ppt》由会员分享,可在线阅读,更多相关《存储过程与触发器 (2).ppt(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第10章章 存储过程与触发器存储过程与触发器n n10.110.1存储过程概述存储过程概述存储过程概述存储过程概述n n10.210.2存储过程的操作存储过程的操作存储过程的操作存储过程的操作n n10.310.3创建和执行带参数的存储过程创建和执行带参数的存储过程创建和执行带参数的存储过程创建和执行带参数的存储过程n n10.410.4存储过程的重新编译存储过程的重新编译存储过程的重新编译存储过程的重新编译n n10.510.5系统存储过程与扩展存储过程系统存储过程与扩展存储过程系统存储过程与扩展存储过程系统存储过程与扩展存储过程n n10.610.6案例中的存储过程案例中的存储过程案例中
2、的存储过程案例中的存储过程n n10.710.7触发器概述触发器概述触发器概述触发器概述n n10.810.8触发器的创建执行触发器的创建执行触发器的创建执行触发器的创建执行n n10.910.9触发器的操作触发器的操作触发器的操作触发器的操作n n10.1010.10嵌套触发器嵌套触发器嵌套触发器嵌套触发器n n10.1110.11案例中的触发器案例中的触发器案例中的触发器案例中的触发器5/27/20235/27/20231 1主讲:王颂华主讲:王颂华第第10章章 存储过程与触发器存储过程与触发器 存存储储过过程程和和触触发发器器是是SQL SQL ServerServer数数据据库库系系统
3、统重重要要的的数数据据库库对对象象,以以SQL SQL Server Server 20052005为为后后台台数数据据库库创创建建的的应应用用具具有有重重要要的的应应用用价价值值。本本章章介介绍绍存储过程和触发器的概念、作用和基本操作。存储过程和触发器的概念、作用和基本操作。5/27/20235/27/20232 2主讲:王颂华主讲:王颂华10.1 存储过程概述存储过程概述n n10.1.1 10.1.1 存储过程的概念存储过程的概念 存储过程是一种数据库,是为了实现某个特定任务,以存储过程是一种数据库,是为了实现某个特定任务,以一个存储单元的形式存储在服务器上的一组一个存储单元的形式存储在
4、服务器上的一组T-SQLT-SQL语句的集合。语句的集合。也可以把存储过程看成是以数据库对象形式存储在也可以把存储过程看成是以数据库对象形式存储在SQL ServerSQL Server中的一段程序或函数。存储过程既可以是一些简单的中的一段程序或函数。存储过程既可以是一些简单的SQLSQL语句,语句,如如SELECT*FROM authorsSELECT*FROM authors,也可以由一系列用来对数据库,也可以由一系列用来对数据库实现复杂商务规则的实现复杂商务规则的SQLSQL语句或控制流语句所组成。语句或控制流语句所组成。5/27/20235/27/20233 3主讲:王颂华主讲:王颂华
5、10.1 存储过程概述存储过程概述n n10.1.2 10.1.2 存储过程的类型存储过程的类型 在在SQL Server 2005SQL Server 2005中,存储过程可以分为三类:用户中,存储过程可以分为三类:用户自定义的存储过程、系统存储过程和扩展存储过程。自定义的存储过程、系统存储过程和扩展存储过程。5/27/20235/27/20234 4主讲:王颂华主讲:王颂华n n10.2.1 10.2.1 创建存储过程创建存储过程n n10.2.2 10.2.2 执行存储过程执行存储过程n n10.2.3 10.2.3 查看存储过程查看存储过程n n10.2.4 10.2.4 修改存储过程
6、修改存储过程n n10.2.5 10.2.5 删除存储过程删除存储过程 10.2 存储过程的操作存储过程的操作5/27/20235/27/20235 5主讲:王颂华主讲:王颂华10.2 存储过程的操作存储过程的操作n n10.2.1 10.2.1 创建存储过程创建存储过程 创建存储过程需要注意:创建存储过程需要注意:n n(1 1)只能在当前数据库中创建存储过程。)只能在当前数据库中创建存储过程。n n(2 2)创建者不仅要有数据库的)创建者不仅要有数据库的CREATE PROCEDURECREATE PROCEDURE权限,权限,还要有对架构的还要有对架构的ALTERAALTERA权限。权限
7、。n n(3 3)存储过程是数据库对象,其名称必须遵循标识符命)存储过程是数据库对象,其名称必须遵循标识符命名规则。名规则。n n(4 4)不能将)不能将CREATE PROCEDURECREATE PROCEDURE语句与其他语句与其他Transact-SQLTransact-SQL语句组合到一个批处理中。语句组合到一个批处理中。n n(5 5)创建存储过程时应指定:输入参数和向调用过程或)创建存储过程时应指定:输入参数和向调用过程或批处理返回的输出参数,执行数据库操作的编程语句,返批处理返回的输出参数,执行数据库操作的编程语句,返回调用过程或批处理的状态值。回调用过程或批处理的状态值。5/
8、27/20235/27/20236 6主讲:王颂华主讲:王颂华10.2 存储过程的操作存储过程的操作n n使用使用Transact-SQLTransact-SQL语句创建存储过程语句创建存储过程 使用使用Transact-SQLTransact-SQL语句创建存储过程语法格式如下:语句创建存储过程语法格式如下:CREATE PROCEDURE CREATE PROCEDURE procedure_name;numberprocedure_name;number parameter parameter data_typeVARYING=defaultOUTPUT,data_typeVARYING
9、=defaultOUTPUT,n n WITHRECOMPILE WITHRECOMPILEENCRYPTIONENCRYPTIONRECOMPILERECOMPILE ENCRYPTION ENCRYPTION FOR REPLICATION FOR REPLICATION AS AS sql_statetion sql_statetion n n 5/27/20235/27/20237 7主讲:王颂华主讲:王颂华10.2 存储过程的操作存储过程的操作n n使用使用SQL ServerSQL Server管理平台创建存储过程见课本管理平台创建存储过程见课本180180页的页的【例例10-21
10、0-2】n n10.2.2 10.2.2 执行存储过程执行存储过程 对于存储在服务器上的存储过程可使用对于存储在服务器上的存储过程可使用EXECUTEEXECUTE命命令来执行。其语法格式如下:令来执行。其语法格式如下:EXECUTE EXECUTE return_status=return_status=procedure_name;number procedure_name;number procedure_name_varprocedure_name_var parameter=value parameter=valuevariableOUTPUT variableOUTPUT DEFA
11、ULTDEFAULT ,:n ,:n WITH RECOMPLIE WITH RECOMPLIE5/27/20235/27/20238 8主讲:王颂华主讲:王颂华10.2 存储过程的操作存储过程的操作n n10.2.3 10.2.3 查看存储过程查看存储过程 存储过程创建好后,其名称保存在系统表存储过程创建好后,其名称保存在系统表sysobjectssysobjects中,其源代码保存在中,其源代码保存在syscommentssyscomments中,再通过中,再通过IDID字段进行字段进行关联。如果需要查看存储过程的相关信息,可以直接使用关联。如果需要查看存储过程的相关信息,可以直接使用系统
12、表,也可以使用系统的存储过程,还可以使用系统表,也可以使用系统的存储过程,还可以使用SQL SQL ServerServer管理平台。管理平台。n n10.2.4 10.2.4 修改存储过程修改存储过程 当存储过程所依赖的基本表发生变化或用户有需要时,当存储过程所依赖的基本表发生变化或用户有需要时,可以对可以对 存储过程的定义或参数进行修改,修改通过执行存储过程的定义或参数进行修改,修改通过执行CREATE PROCEDURECREATE PROCEDURE语句创建过程,不会改变权限,也不影语句创建过程,不会改变权限,也不影响相关的存储过程或触发器。响相关的存储过程或触发器。修改可通过使用修改
13、可通过使用Transact-SQLTransact-SQL语句进行,也可使用语句进行,也可使用SQL ServerSQL Server管理平台进行修改。管理平台进行修改。5/27/20235/27/20239 9主讲:王颂华主讲:王颂华10.2 存储过程的操作存储过程的操作n n10.2.5 10.2.5 删除存储过程删除存储过程 当存储过程没有存在的意义时,可以使用当存储过程没有存在的意义时,可以使用DROP DROP PROCEDUREPROCEDURE语句或语句或SQL ServerSQL Server管理平台将其删除。管理平台将其删除。n n【例例例例10101010-7 7 7 7】
14、删除存储过程删除存储过程st_jsjbjst_jsjbj。代码如下:代码如下:USE student USE student GO GO DROP PROCEDURE st_jsjbj DROP PROCEDURE st_jsjbj GO GO5/27/20235/27/20231010主讲:王颂华主讲:王颂华 带带参参数数的的存存储储过过程程可可以以扩扩展展存存储储过过程程的的功功能能。使使用用输输入入参参数数,可可以以将将外外部部信信息息传传入入存存储储过过程程;使使用用输输出出参参数数,可可以以将将存存储储过过程程的的信信息息传传到到外外部部。创创建建带带参参数数的的存存储储过过程程时时
15、,参参数数可可以以是是一一个个,也也可可以以是是多多个个,有有多多个个参参数数时时,参参数数之之间间用用逗逗号号分分隔隔;所所有有类类型型的的数数据据均均可可以以作作为为存存储储过过程程的的参参数数,一一般般情情况况下下,参参数数的的数据类型要与其相关字段的数据类型一致。数据类型要与其相关字段的数据类型一致。10.3 创建和执行带参数的存储创建和执行带参数的存储过程过程5/27/20235/27/20231111主讲:王颂华主讲:王颂华 存存储储过过程程第第一一次次执执行行后后,其其被被编编译译的的代代码码将将驻驻留留在在高高速速缓缓存存中中,当当用用户户再再次次执执行行该该存存储储过过程程时
16、时,SQL SQL ServerServer将将其其从从缓缓存存中中调调出出执执行行。在在使使用用了了存存储储过过程程后后,有有时时可可能能会会因因为为某某些些原原因因,必必须须向向表表中中添添加加数数据据列列或或为为表表添添加加索索引引,从从而而改改变变数数据据库库的的逻逻辑辑结结构构,此此时时SQL SQL ServerServer不不自自动动执执行行优优化化,直直到到下下一一次次重重新新启启动动后,再运行该存储过程。后,再运行该存储过程。10.4存储过程的重新编译存储过程的重新编译 5/27/20235/27/20231212主讲:王颂华主讲:王颂华10.5系统存储过程与扩展存储系统存储
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 存储过程与触发器 2 存储 过程 触发器
限制150内