第8章存储过程与触发器要点解析.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文档。上传文档
查看更多
1)输入参数 例8.3:创建一个有输入参数的存储过程proc_student2,显示指定学号的学生基本信息(包括学生学号、姓名、性别、系)。执行该存储过程显示学号为J0404的学生信息。 create procedure proc_student2 @num char(6) as SELECT 学号,姓名,性别,系 FROM s WHERE 学号=@num exec proc_student2 @num=J0404 例8.4:创建存储过程s_info。根据学生姓名和学号查询学生的学号,姓名,性别和所在系。 if exists(select name from sysobjects where name=s_info and type=p) drop procedure s_info create proc s_info @stname varchar(8), @stsno varchar(10) as SELECT 学号,姓名,性别,系 FROM s WHERE 姓名=@stname and 学号=@stsno go exec s_info 李丽,J0401 例8.7: 创建存储过程s_like,根据姓名,查询学生的姓名和平均成绩。如果执行时,没带参数,则显示姓陈的学生平均成绩。 Create procedure s_like @stname varchar(8)=‘陈%’ As select 姓名,平均成绩=avg(sc.成绩) from sc,s where s.学号=sc.学号 and s.姓名 like @stname group by 姓名 Go Execute s_like Execute s_like ‘李丽’ 例8.8:创建存储过程s_count,根据课程名,检索选修某门课程的学生人数。 Create procdure s_count @ctname varchar(30)=NULL As if @ctname is NULL print ‘请输入课程名!’ else select 课程名,学生选修人数=count(学号) from sc,c where c.课程号=sc.课程号 and c.课程名=@ctname group by 课程名 Go Execute s_count ‘c语言’ 2)输出参数 作用:将过程定义中的形参的值返回到调用程序中。 例8.11:建立一个过程,用于显示指定学号的各门课程 平均成绩,并返回该生的平均成绩。 create proc proc_student3 @num char(16),@savg smallint output as select @savg=avg(成绩) from s join sc on s.学号=sc.学号 where s.学号=@num go declare @savg_value smallint exec proc_student3 @num=J0401,@savg=@savg_value output select @savg_value as ‘平均成绩’ 2)输出参数 例8.12:创建过程sg,根据输入的学号和课程号,显示某个同学指定课程的成绩并返回该成绩。 Create proc sg @sn varchar(8)=‘j0401’,@cn varchar(3)=‘c02’,@gr smallint output As Select 学号,课程号,成绩 from sc where sc.学号=@sn and sc.课程号=@cn Select @gr=成绩 from sc where sc.学号=@sn and sc.课程号=@cn go Declare @myscore smallint set @myscore=0 Execute sg @sn=‘j0402’,@gr=@myscore output 2.返回值 例8.14: 创建存储过程checkstate,查询指定课程的最高成绩,如果最高成绩大于90分,则返回状态代码1。否则,返回状态代码2 create proc checkstate @cno varchar(3) as if (select max(成绩) from sc where 课程号 =@cno)90 return 1 else return 0 go declare @mystate int Execute @mystate=c

文档评论(0)

三沙市的姑娘 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档