- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
什么是存储过程
定义:?????将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来,那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令。???讲到这里,可能有人要问:这么说存储过程就是一堆SQL语句而已啊Microsoft公司为什么还要添加这个技术呢? 那么存储过程与一般的SQL语句有什么区别呢?存储过程的优点:??????1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。?????2.当对数据库进行复杂操作时(如对多个表进Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。?????3.存储过程可以重复使用,可减少数据库开发人员的工作量?????4.安全性高,可设定只有某此用户才具有对指定存储过程的使用权
存储过程的种类:?????1.系统存储过程:以sp_开头,用来进行系统的各项设定.取得信息.相关管理工作,如?? sp_help就是取得指定对象的相关信息?????2.扩展存储过程?? 以XP_开头,用来调用操作系统提供的功能????????? exec?? master..xp_cmdshell?? ping?? 10.8.16.1?????3.用户自定义的存储过程,这是我们所指的存储过程???????常用格式????????? Create?? procedure?? procedue_name????????? [@parameter?? data_type][output]????????? [with]{recompile|encryption}????????? as????????? sql_statement??????? 解释:????????? output:表示此参数是可传回的??????? with?? {recompile|encryption}??????? recompile:表示每次执行此存储过程时都重新编译一次??????? encryption:所创建的存储过程的内容会被加密??????? 如:????????? 表book的内容如下????????? 编号?? 书名?? 价格????????? 001?? C语言入门?? $30????????? 002?? PowerBuilder报表开发?? $52????????? 实例1:查询表Book的内容的存储过程????????? create?? proc?? query_book????????? as??????????? select?? *?? from?? book????????? go????????? exec?? query_book????????? 实例2:加入一笔记录到表book,并查询此表中所有书籍的总金额????????? Create?? proc?? insert_book????????? @param1?? char(10),@param2?? varchar(20),@param3?? money,@param4?? money?? output????????? with?? encryption?? ---------加密????????? as????????? insert?? book(编号,书名,价格)?? Values(@param1,@param2,@param3)????????? select?? @param4=sum(价格)?? from?? book????????? go????????? 执行例子:??????????? declare?? @total_price?? money??????????? exec?? insert_book?? 003,Delphi?? 控件开发指南,$100,@total_price????????? print?? 总金额为+convert(varchar,@total_price)????????? go??????? 存储过程的3种传回值:????????? 1.以Return传回整数????????? 2.以output格式传回参数????????? 3.Recordset??????? 传回值的区别:????????? output和return都可在批次程式中用变量接收,而recordset则传回到执行批次的客户端中????????? 实例3:设有两个表为Product,Order,其表内容如下:
文档评论(0)