《SQL Server 2005数据库案例教程》-严波-电子教案 第11章存储过程.ppt

《SQL Server 2005数据库案例教程》-严波-电子教案 第11章存储过程.ppt

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《SQL Server 2005数据库案例教程》-严波-电子教案 第11章存储过程

第十一章  存储过程 课程内容回顾 事务的概念 事务的特性:原子性、一致性、隔离性和持久性 (ACID) 事务可以分为如下类型: 显式事务 隐式事务 自动提交事务 索引的好处和分类 聚集索引和非聚集索引。 视图的好处 本章目标 了解存储过程的优点 掌握常用的系统存储过程 掌握如何创建存储过程 掌握如何调用存储过程 存储过程介绍 存储过程中的语句 存储过程中的语句 存储过程的优点 存储过程的优点: 允许模块化程序设计 只需创建过程一次并将其存储在数据库中,以后即可在程序中调用该过程任意次 允许更快执行 存储过程将比Transact-SQL批代码的执行要快 减少网络流量 存储过程存储在后端数据库中不需要通过网络传输 可作为安全机制使用 即使对于没有直接执行存储过程中语句权限的用户,也可授予他执行该存储过程的权限 常用的系统存储过程 SQL Server提供系统存储过程,它们是一组预编译的T-SQL语句 所有系统存储过程的名称都以“_sp”开头。系统存储过程位于master数据库中 常用的系统存储过程的使用 常用的扩展存储过程:xp_cmdshell 它可以完成DOS命令下的一些操作,诸如创建文件夹、列出文件等 语法: 示例: xp_cmdshell扩展存储过程的使用 常用的系统存储过程的使用 EXEC sp_databases --不带参数 EXEC sp_helpdb --可带参数,也可不带,所有数据库中可用 USE empDB --指定数据库empDB GO EXEC sp_help emp --带参数,参数为表emp 创建存储过程 创建存储过程 SSMS:可视化的方式 T-SQL:代码(重点介绍) 使用CREATE PROCEDURE语句创建存储过程。所有的存储过程都创建在当前数据库中 语法: 创建不带参数的存储过程 问题:查看部门的平均工资以及各部门工资不超过2000的员工,并根据工资数额显示加薪信息 调用存储过程 语法: 调用示例存储过程 执行结果如下: 创建带参数的存储过程 CREATE PROC[EDURE] 存储过程名 [ {@参数1 数据类型} [=默认值] [OUTPUT], ......., {@参数n 数据类型} [=默认值] [OUTPUT] ] AS SQL语句 创建带输入参数的存储过程示例-1 emp表中,当部门不同时,需要加薪的员工和部门的平均工资会有所不同 问题:给定部门号,求该部门的平均工资 创建带输入参数的存储过程示例-2 问题:对于不同部门,求出从事销售工作的人数 创建带输出参数的存储过程 如果希望调用存储过程后,返回一个或多个值,就需要使用输出(OUTPUT)参数了。 为了使用输出参数,必须在CREATE PRODECURE 语句和EXECUTE语句中指定OUTPUT关键字。在执行存储过程时,如果忽略OUTPUT关键字,存储过程仍然会执行但不返回值 创建带输出参数的存储过程示例-1 USE empDB GO CREATE PROCEDURE pro_job @dno int=20, @jb varchar(20)=SALESMAN, --默认参数放后 @rs int output --OUTPUT关键字,否则视为输入参数 AS print 部门: + convert(varchar(5),@dno) + 工作: + @jb print --------------------------- SELECT @rs=COUNT(*) FROM emp WHERE deptno=@dno and job=@jb print 人数: + convert(varchar(10),@rs) GO /*--调用存储过程--*/ declare @no int --定义变量,用于存放调用存储过程时返回的结果 exec pro_job 30, CLERK,@no output --调用时要带有OUTPUT关键字 print 求得的人数是: + convert(varchar(10),@no) 创建带输出参数的存储过程示例-2 USE empDB GO CREATE PROCEDURE MathProd @m1 smallint, @m2 smallint, @result smallint OUTPUT AS SET @result=@m1 * @m2

您可能关注的文档

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档