第十二讲 T-SQL的存储过程.ppt

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

第十二讲 T-SQL的存储过程 计算机教研室何进 内容概述 存储过程的基本概念 创建存储过程 修改和删除存储过程 执行存储过程 系统存储过程 事务 存储过程的概念 存储过程——将一些固定的操作集中起来,交由SQL Server 服务器来完成,这种特定的任务和方法,叫存储过程,其实质就是一段程序。存储过程分为五类: 系统存储过程,都包含在master 和 msdb数据库中,主要是获取系统信息,以sp_ 开始 用户定义的存储过程,存储在当前数据库中,以pr_开始 扩展存储过程,是对DLL文件的中的扩展调用,以xp_开始 临时存储过程 远程存储过程 我们主要面对的系统存储过程和用户自定义存储过程 存储过程的概念 存储过程的执行——可以由应用程序调用,也可以由触发器或CHECK完整性调用 (就是一段子程序) 存储过程的优点: 加快系统运行,编译一次,可供所有用事件和用户调用 封装复杂操作,可以把多个复杂的操作封装成存储过程一次调用执行 实现代码重复使用 通过使用使用权设置,提高系统运行安全性 减少网络通讯 存储过程的创建 存储过程包含一组经常执行的、逻辑完整的SQL语句, 可以传递数值、返回数值和修改数值等。其创建方法: 方法一:通过企业管理器里创建向导 方法二:通过T-SQL语句创建 具体格式: CREATE PROC 过程名 [{参数1 数据类型}[=默认值][OUTPUT] …… AS SQL语句 …… 存储过程的创建 基本存储过程,不带参数 问题1:建立一个成绩查询的存储过程,查询的结果包含:姓名、课程名、成绩,涉及的表有:S,SC,C表 Create pocedure pr_mygrade As Select S.sname as 姓名,c.cname as 课程名,SC.grade as 成绩 from S,C,SC where S.S#=SC.S# and SC.C#=c.C# go 执行: EXEC pr_mygrade 存储过程的创建 带参数的存储过程 问题2:编写一个存储过程以实现向表c插入新数据的操作 create proc pr_addcourse ( @c_no char(7), @c_name char(20), @c_peno int ) as insert into c values(@c_no,@c_name,@c_peno) go 执行: exec pr_addcourse 008,高等数学,70 存储过程的创建 使用系统表格的范例 if exists (select name from sysobjects where name=‘pr_addcourse’ and type=‘P’) drop proc pr_addcourse go create proc pr_addcourse as …… go 存储过程的创建 使用输出参数的存储过程 create proc pr_getcredit ( @c_no char(3), @c_credit float output ) as select @c_credit=credit from c where c#=@c_no go 注明:@c_no为输入参数,用于传入学号,@c_credit 为输出参数,用于返回学时 declare @c_credit float exec pr_getcredit 005,@c_credit output print @c_credit 存储过程的返回值 存储过程可以用return返回值 范例:返回知否执行成功的的信息 Create proc pr_getcredit_r ( @c_no char(3) ) as declare @c_credit float Select @c_credit=credit From c Where c#=@c_no Return @c_credit go 存储过程的返回值 调用: declare @ret float exec @ret=pr_getcredit_r ‘006’ print ‘返回值等于:’+convert(char(6),@ret) 说明:有点类似于C中函数的定义和调用,函数的返回值,但是,在这里,我们也可以感觉到变量太多,太复杂,有参数接受数据,有传递返回值的变量,调用的时候

文档评论(0)

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

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

1亿VIP精品文档

相关文档