数据库系统原理及应用-存储过程.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库系统原理及应用-存储过程

数据库系统原理及应用 SQLServer2000编程--存储过程 存储过程 一、存储过程的基本知识 存储过程(Stored Procedure) 是存储在服务器上的 Transact-SQL 语句的命名集合 是封装重复性任务的方法 支持用户声明变量、条件执行以及其他强有力的编程特性 使用服务器上的存储过程而不使用存储在客户端计算机本地的 T-SQL 程序的优点包括: 与其他应用程序共享应用逻辑,确保一致的数据访问和修改。 存储过程封装了商务逻辑。若规则或策略有变化,则只需要修改服务器上的存储过程,所有的客户端就可以直接使用 能够实现较快的执行速度 预编译的 Transact-SQL 语句,可以根据条件决定执行哪一部分 能够减少网络流量 客户端用一条语句调用存储过程,就可以完成可能需要大量语句才能完成的任务,这样减少了客户端和服务器之间的请求/回答包 提供了安全性机制。 屏蔽数据库模式的详细资料。用户不需要访问底层的数据库和数据库内的对象。用户可以被赋予执行存储过程的权限,而不必在存储过程引用的所有对象上都有权限 存储过程与其他编程语言中的过程类似,它可以 包含执行数据库操作(包括调用其他过程)的编程语句 接受输入参数 向调用过程或批处理返回状态值,以表明成功或失败(以及失败原因) 以输出参数的形式将多个值返回至调用过程或批处理 存储过程的分类 系统存储过程 由系统定义,存放在master数据库中 类似C语言中的系统函数 系统存储过程的名称都以“sp_”开头或”xp_”开头 用户自定义存储过程 由用户在自己的数据库中创建的存储过程 类似C语言中的用户自定义函数 常用的系统存储过程 常用的扩展存储过程:xp_cmdshell 可以执行DOS命令下的一些的操作 以文本行方式返回任何输出 调用语法: EXEC xp_cmdshell DOS命令 [NO_OUTPUT] 二、如何创建存储过程 定义存储过程的语法 CREATE PROC[EDURE] 存储过程名 @参数1 数据类型 = 默认值 OUTPUT, …… , @参数n 数据类型 = 默认值 OUTPUT AS SQL语句 GO 和C语言的函数一样,参数可选 参数分为输入参数、输出参数 输入参数允许有默认值 1.创建不带参数的存储过程 创建不带参数的存储过程 CREATE PROCEDURE proc_stu AS DECLARE @writtenAvg float,@labAvg float SELECT @writtenAvg=AVG(writtenExam), @labAvg=AVG(labExam) FROM stuMarks print 笔试平均分:+convert(varchar(5),@writtenAvg) print 机试平均分:+convert(varchar(5),@labAvg) IF (@writtenAvg70 AND @labAvg70) print 本班考试成绩:优秀 ELSE print 本班考试成绩:较差 print -------------------------------------------------- print 参加本次考试没有通过的学员: SELECT stuName,stuInfo.stuNo,writtenExam,labExam FROM stuInfo INNER JOIN stuMarks ON stuInfo.stuNo=stuMarks.stuNo WHERE writtenExam60 OR labExam60 GO 调用存储过程 EXECUTE(执行)语句用来调用存储过程 调用的语法 [EXEC] 过程名 [参数] 如果对存储过程的调用是批处理的第一条语句,则可以直接使用存储过程的名字调用。 存储过程的参数分两种: 输入参数 输出参数 输入参数: 用于向存储过程传入值,类似C语言的按值传递; 输出参数: 用于在调用存储过程后, 返回结果,类似C语言的 按引用传递; 3.输入参数的默认值 带参数的存储过程确实比较方便,调用者可根据试卷的难易度,随时修改每次考试的及格线 问题:如果试卷的难易程度合适,则调用者还是必须如此调用: EXEC proc_stu 60,60--比较麻烦 这样调用

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档