- 1、本文档共2页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
存储过程的创建及其优缺点存储过程的创建及其优缺点存储过程的创建及其优缺点
首先介绍一下概念,存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,是利用SQL Server所提供的Transact-SQL语言所编写的程序。经编译后存储在数据库中。他可以接收参数,可以返回参数的,当然也可以没有参数。个人理解,他和程序中的函数差不多,只不过他是在数据库中创建的。
???? 存储过程分为系统存储过程和自定义存储过程
???? 存储过程的优点:
????? 1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。 2.当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。 这也是我愿意使用它的一个重要原因。
下面是一个带输入参数的一个存储过程
???? use LineManager gocreate?proc ProcRegist@CardNo varchar(10),@StuNo varchar(11),@Sex varchar(10),@Grade varchar(10),@ClassNo varchar(10),@ChargeFee varchar(10),@Name varchar(10),@Department varchar(10),
@Explain varchar(50),@UserName varchar(10),@OperateDate date???????????????? ---------------------输入参数asbeginbegin transactioninsert into Student(StudentNo ,Name ,Sex ,Department ,Grade ,ClassNo ) values (@StuNo ,@Name ,@Sex ,@Department ,@Grade ,@ClassNo )insert into Regist (CardNo ,StudentNo ,State ,Explain ,UserName ,OperateDate ) values(@CardNo ,@StuNo ,使用 ,@Explain,@UserName ,@OperateDate? )insert into Charge (CardNo ,ChargeDateTime ,Charge ,UserName ,LastBalance ,CurrentBalance ,OrderState ,PrintState )values (@CardNo ,@OperateDate ,@ChargeFee ,@UserName ,0,@ChargeFee ,未结账,未打印)if @@ERROR =0commit transactionelserollback transaction??????? -------------------将对表的一系列操作放到事务中,这样,如果,在对表的操作发生错误
????????????????????????????????????????? 时,可以回滚到发生错误之前,保证表的一致性endgo? ------------批处理语句要有头有尾,否则调用是不会出结果的。
------------执行此存储过程execute ProcRegist 00,11,女,08信本,1,30,艳梅,数信,尝试一下,yanmei,2011/3/21excecute关键字 ,后面是此存储过程中你定义的参数。 3.存储过程可以重复使用,可减少数据库开发人员的工作量 4.安全性高,可设定只有某些用户才具有对指定存储过程的使用权
存储过程的缺点:
?????? 1:调试麻烦,但是用 PL/SQL Developer 调试很方便!弥补这个缺点。
2:移植问题,数据库端代码当然是与数据库相关的。但是如果是做工程型项目,基本不存在移植问题。
3:重新编译问题,因为后端代码是运行前编译的,如果带有引用关系的对象发生改变时,受影响的存储过程、包将需要重新编译(不过也可以设置成运行时刻自动编译)。
4: 如果在一个程序系统中大量的使用存储过程,到程序交付使用的时候随着用户需求的增加会导致数据结构的变化,接着就是系统的相关问题了,最后如果用户想维护该系统可以说是很难很难、而且代价是空前的,维护起来更麻烦。
总结:任何事物都是两面性的,有其好的方面,也有坏的方面。重要的是自己把握平衡。
文档评论(0)