存储过程和触发器.ppt

存储过程和触发器.ppt

ID:55896476

大小:210.50 KB

页数:47页

时间:2020-06-13

存储过程和触发器.ppt_第1页
存储过程和触发器.ppt_第2页
存储过程和触发器.ppt_第3页
存储过程和触发器.ppt_第4页
存储过程和触发器.ppt_第5页
资源描述:

《存储过程和触发器.ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库

1、第6章存储过程、触发器和数据完整性6.1存储过程6.2触发器6.3数据完整性6.1存储过程客户/服务器数据库与传统的数据库结构的一个很重要的区别是,在传统的数据库中只存放数据,所有的应用程序都在用户端,都与用户实际运行的应用程序捆绑在一起;而在客户/服务器结构的数据库中,在数据库中还可以存放程序,即存储过程。基本概念存储过程是事先编好的、存储在数据库中的程序,这些程序用来完成对数据库的指定操作。系统存储过程SQLServer本身提供了一些存储过程,用于管理SQLServer和显示有关数据库和用户的信

2、息,我们称之为系统存储过程。用户存储过程用户也可以编写自己的存储过程,并把它存放在数据库中。这样安排的主要目的就是要充分发挥数据库服务器的功能,尽量减少网络上的堵塞。客户端应用(不使用存储过程)客户端应用(使用存储过程).Starttransaction.INSERTdataUPDATEdataDELETEdataEndtransaction..Starttransaction.CallStoredprocedureEndtransaction.DBMSServerDBMSServerProcedu

3、re:INSERTdataUPDATEdataDELETEdata(a)(b)不使用存储过程时,所有的数据处理都在客户端完成;而使用存储过程时,可以使数据处理在服务器端完成。创建存储过程CREATEPROC[edure]procedure_name[;number][@parameterdata_type[=default],…]ASsql_statementsprocedure_name:给出存储过程名;snumber:对同名的存储过程指定一个序号;s@parameter:给出参数名;sdata_

4、type:指出参数的数据类型;s=default:给出参数的默认值;ssql_statement:存储过程所要执行的SQL语句,它可以是一组SQL语句,可以包含流程控制语句等。例:创建一个最简单的存储过程:CREATEPROCeduresp_getemp;1ASSELECT*FROM职工例:带参数的存储过程:CREATEPROCeduresp_getemp;2(@salaryint)ASSELECT*FROM职工WHERE工资>@salary存储过程一般用来完成数据查询和数据处理操作,所以在存储过程

5、中不可以使用创建数据库对象的语句,即在存储过程中一般不能含有以下语句:CREATETABLECREATEVIEWCREATEDEFAULTCREATERULECREATETRIGGERCREATEPROCEDURE执行存储过程[EXECute][@<返回状态码>=]<存储过程名>[[@<参数>=]{<值>

6、@<变量>}…]例:执行带参数的sp_getemp;2存储过程executesp_getemp;21240存储过程的返回值和状态信息无论什么时候执行存储过程,总要返回一个结果码,用以指示存储过程的

7、执行状态。如果存储过程执行成功,返回的结果码是0;如果存储过程执行失败,返回的结果码一般是一个负数,它和失败的类型有关。我们在创建存储过程时,也可以定义自己的状态码和错误信息。CREATEPROCeduresp_getemp;3(@salaryint=NULL)ASIF@salaryISNULLBEGINPRINT'必须提供一个数值作参数!'RETURN13ENDIFNOTEXISTS(SELECT*FROM职工WHERE工资>@salary)BEGINPRINT'没有满足条件的记录!'RETURN

8、-103ENDSELECT*FROM职工WHERE工资>@salaryRETURN0例:带参数和返回状态值的存储过程。例:执行以上存储过程。DECLARE@statusintEXECUTE@status=sp_getemp;31200print@status存储过程的修改和删除修改存储过程的语句是(一般格式):ALTERPROC[edure]procedure_name[;number][@parameterdata_type[=default],…]ASsql_statement删除存储过程的语句

9、是:DROPPROC[edure]procedure_name注意:删除存储过程的语句中不能指定序号。也就是说,该语句将同时删除同名的所有存储过程。要用好存储过程存储过程是客户/服务器机制的一个重要组成部分,如果使用客户/服务器机制的数据库管理系统,但是不理解存储过程或没有充分利用存储过程,那将使客户/服务器机制的功能大打折扣,使系统的整体性能可能降低很多。6.2触发器触发器可以看作是一类特殊的存储过程,它在满足某个特定条件时自动触发执行。触发器是为表上的更新、插入、

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。