第8章存储过程与触发器.ppt
《第8章存储过程与触发器.ppt》由会员分享,可在线阅读,更多相关《第8章存储过程与触发器.ppt(39页珍藏版)》请在课桌文档上搜索。
1、第8章 存储过程与触发器,2023/11/7,2/39,将一些T-SQL语句打包成一个数据库对象(存储过程或触发器)并存储在SQL Server服务器上,等到需要时,就调用或触发这些T-SQL语句包。本章教与学的建议:教师使用4课时边讲解示例,边安排练习,学生在教师的指导下使用4课时在课内练习和检查。本章目标是通过学习,能够实施存储过程和触发器应用管理。,第8章 存储过程与触发器,2023/11/7,3/39,本章学习任务 存储过程概述 存储过程定义与特点、类型 创建和执行存储过程 创建和执行带参数或不带参数的存储过程、创建和使用扩展存储过程 修改和删除存储过程 查看、修改、删除存储过程 创建
2、和管理触发器 触发器概述、创建触发器、管理触发器,第8章 存储过程与触发器,2023/11/7,4/39,存储过程的概述,当开发一个应用程序时,为了易于修改和扩充方便,我们经常会将负责不同功能的语句集中起来而且按照用途分别独立放置,以便能够反复调用,而这些独立放置且拥有不同功能的语句,即是“过程”(Procedure)。SQL Server的存储过程是一组完成特定功能的T-SQL语句集,经编译后以特定的名称存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行存储过程。,2023/11/7,5/39,存储过程特点与类型,存储过程特点允许模块化的程序设计更快的执行速
3、度有效降低网络流量较好的安全机制,存储过程类型系统存储过程本地存储过程临时存储过程远程存储过裎扩展存储过程,2023/11/7,6/39,不带参数的存储过程,使用对象资源管理器创建存储过程使用SQL命令创建存储过程CREATE PROCEDURE procedure_nameAS sql_statementsprocedure_name为所创建的存储过程的名字;sql_statements为在存储过程中需要执行的数据库操作。,2023/11/7,7/39,不带参数的存储过程,2023/11/7,8/39,不带参数的存储过程,2023/11/7,9/39,带参数的存储过程,存储过程通过参数来与调
4、用它的程序通信。在程序调用存储过程时,可以通过输入参数将数据传给存储过程,存储过程可以通过输出参数和返回值将数据返回给调用它的程序。创建带参数的存储过程的语法格式CREATE PROCEDURE procedure_nameparameter data_type=DEFAULTOUTPUT,nWITHRECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTINAS sql_ statements,2023/11/7,10/39,带参数的存储过程,使用参数名传送参数值 EXECUTE procedure_name parameter_name=value,nprocedure
5、_name为存储过程名;parameter_name为输入参数名;value为传递给输入参数的值。如果存储过程中有输入参数,在执行存储过程时没有给出参数,则系统会显示错误提示。,2023/11/7,11/39,带参数的存储过程,2023/11/7,12/39,带参数的存储过程,2023/11/7,13/39,带参数的存储过程,按位置传送参数值 EXECUTE proc_name value1,value2,proc_name为存储过程名;value1,value2,为传递给各输入参数的值。具有默认值的存储过程例如,针对一个表,创建一个存储过程,执行存储过程时将向数据表插入一条记录,新记录的值由
6、参数提供,如果未提供某个字段的值时,由参数的默认值代替。,2023/11/7,14/39,带参数的存储过程,2023/11/7,15/39,带参数的存储过程,2023/11/7,16/39,带参数的存储过程,创建具有返回值的存储过程parameter_name datatype=default OUTPUT,nparameter_name存储过程的输出参数名,必须以符号为前缀。存储过程通过该参数返回结果。datatype指明输出参数的数据类型,它既可以是系统提供的数据类型,也可以是用户自定义的数据类型,但必须是除text和image以外的数据类型。default指定输出参数的默认值。OUTPU
7、T指明参数为输出参数。,2023/11/7,17/39,带参数的存储过程,2023/11/7,18/39,带参数的存储过程,执行具有返回值的存储过程EXECUTE return_status=procedure_name|procudure_name_varparameter_name=value|variableOUTPUT,nWITH RECOMPILEprocedure_name:需执行的存储过程的名字;parameter_name=value|variable为输入参数传递值;parameter_name=variable OUTPUT为传递给输出参数的变量,variable用来存放返
8、回参数的值。OUTPUT指明这是一个输出传递参数,与响应的存储过程中的输出参数相匹配。,2023/11/7,19/39,带参数的存储过程,2023/11/7,20/39,带参数的存储过程,存储过程的重编译处理 存储过程的处理在创建存储过程时,SQL Server需要对存储过程中的语句进行语法检查。如果存储过程定义中存在语法错误,将返回错误,并且将不能创建该存储过程。如果语法正确,则存储过程的文本将存储在syscomments系统表中。在建立存储过程时设定重编译选项CREATE PROCEDURE WITH RECOMPILE通过在创建时设定重编译选项,在每次执行时对存储过程进行重编译处理。,2
9、023/11/7,21/39,带参数的存储过程,存储过程的重编译处理 在执行存储过程时设定重编译选项EXECUTE procedure_nameparameter_name=variable OUTPUT WITH RECOMPILE通过在执行存储过程的EXECUTE语句中设定WITH RECOMPILE选项,可以在执行存储过程时重新编译该存储过程。通过系统存储过程设定重编译选项EXEC sp_recompile OBJECTsp_recompile为用于重编译存储过程的系统存储过程;OBJECT为当前数据库中的存储过程、触发器、表或视图的名称。,2023/11/7,22/39,带参数的存储过
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 存储 过程 触发器
链接地址:https://www.desk33.com/p-751448.html