- 1、本文档共37页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SqlServer2008CH7创建和管理存储过程整理ppt
创建和管理存储过程 目录 批处理 存储过程 创建存储过程 执行存储过程 修改与删除存储过程 自定义函数 创建自定义函数 执行自定义函数 修改与删除自定义函数 NO:1 上节回顾 上节回顾 批量: 变量: 局部变量 全局变量 打印消息: 控制流语言: if else case while NO:1 存储过程 存储过程 存储过程是服务器上一组预先定义并编译好的SQL语句 它可以接受参数、返回状态值和参数值,并且可以嵌套调用 使用存储过程可以改变SQL语句的运行性能,提高其执行效率 存储过程还可以用作一种安全机制,使用户通过它访问未经授权的表或视图 类似于高级语言中的子程序 存储过程 -存储过程分类 系统存储过程(sp_):存放在master数据库中,提供存储系统表信息的快捷方式,可在任何数据库执行 局部(本地)存储过程:在各个用户数据库中创建 临时存储过程:可以是局部的(#),也可以是全局的(##),局部临时存储过程在单个用户任务中有效,全局临时存储过程在所有用户任务中有效 远程存储过程:从连接到不同服务器的远程服务器或客户机调用的存储过程,早期版本使用,现由分布查询支持 扩展存储过程(xp_):在SQL环境外部执行的DLL 存储过程 -优点 共享应用程序逻辑:用户使用相同的存储过程保证一致的数据修改 提供安全机制:用户可以被授予执行存储过程的权限,及时无权访问存储过程引用的表或视图 自动执行:能在启动时自动执行 提高性能:第一次执行后,执行计划存放在高速缓存中 减少网络流量:通过发送一条语句来执行一个复杂的操作,减少了在服务器和客户机之间传递的请求数 存储过程 -创建存储过程 语法: create proc[edure] procedure_name [@parameter data_type [=default] [output]] As [begin] sql_statement[,n……] [end] 说明: Procedure_name:存储过程名 @parameter:局部变量名 output:指定局部变量是否为输出参数 存储过程 -创建存储过程的几个注意 create proc所创建的存储过程可以为永久对象,也可为临时对象,由名字决定 create proc语句不可以与其他SQL语句一起使用 在过程定义中不能使用create语句创建视图、默认、规则、触发器、存储过程。在过程中创建了以外的对象,之后又删除它们,在该过程中不能再创建它们的同名对象 在存储过程嵌套调用时,被调用的存储过程可以访问调用这所建立的除临时表以外的所有数据库对象 存储过程 -创建存储过程的几个注意(续) 嵌套调用只能在32个以内,当前调用级别存储在@@nestlevle中 要创建存储过程必须时系统管理员角色、数据库所有者角色或数据定义语言管理角色之一,或者被授予create procedure许可 根据可使用的内存,存储过程最大的尺寸为128M 存储过程 - (示例1) 建立一个不带参数的存储过程. create proc simpleProcDemo as select * from student_table 存储过程 -执行存储过程 语法: exec[ute] [@return_status=pro_name] [@parameter=value [output]] @return_status:返回状态(即错误代号),为0时证明执行成功,其他值为失败 存储过程 -执行存储过程 示例: 执行存储过程有三种方式. execute simpleProcDemo exec simpleProcDemo simpleProcDemo 存储过程 -存储过程的参数传递 execute语句中可使用两种方法传递参数,执行过程中可以随意使用,当两种不可混用 parameer_value1[,parameter_value2...]在这种方式下,参数顺序要严格按定义时的顺序,默认值可省略,但要按照顺序 @parameter_name1=value[,...]在这种方式下,参数名与参数值唯一对应,顺序可任意排列 存储过程 -存储过程的参数传递 示例1: create proc procWithparameter(@temp int) as print @temp -
文档评论(0)