数据库数据存储过程.ppt

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

执行存储过程为第一条语句,可以省略exec。 1.4存储过程的参数 1.参数定义 输入参数将用户的数据值传递到存储过程后函数, 输出参数将用数据值或游标变量传递到用户,每个存储过程向用户返回一个整数代码,如果没有显性设置返回代码的值,则返回为0。 简单的语法格式如下: CREATE PROC[EDURE] proc_name @parameter_name data_type[=default][,…n] OUTPUT AS SQL_satament OUTPUT用于定义输出参数时使用,输出参数必须位于所有的输入参数之后;输出参数中保存的是存储过程执行完成时的当前值。 2.输入参数 【例1】中查询了整个表的信息,如果想查询指定某个学生的信息,则该存储过程更加通用化、灵活性,需要引入参数。 【例3】定义一个输入参数的存储过程。在数据库中创建一个名为Proc_GetAllStudent的存储过程,在表(student)查询某个学号的学生信息。 ① 判断该存储过程是否存在,若存在,则删除; ② 创建该存储过程; ③ 执行该存储过程。 ?if exists(select * from sysobjects where name=Proc_GetAllStudent and type=p) drop proc Proc_GetAllStudent ? CREATE PROCEDURE GetAllStudents @x char(10) AS select sno,sname,sage,ssex,sdept from student where sno=@x ? exec GetAllStudents200211122 执行时可以用多种方式。 在执行存储过程的语句中,直接给出参数的值。多个参数时候,次序按照语句中参数的次序给出。 exec GetAllStudents 200211122 使用“参数名=参数值”的方式,参数名必须和存储过程定义的参数名一致。 exec GetAllStudents @x=200211122 定义一个参数,附值,再执行 declare @y char(10) set @y=11202 exec GetAllStudents @y 3.输出参数 通过定义输出参数,可以从存储过程中返回一个或多个值。必须在定义和执行时指定关键字output。 create proc sum @x int,@y int,@result int output as set @result=@x+@y ~~~~~~~~~~~~~~~~~~~~~~~~ declare @z int exec sum3,5,@z output select @z sum 【例4】定义一个输入参数和两个输出参数,显示某个学生的学号和最高成绩 if exists(select * from sysobjects where name=maxmarke) drop proc maxmarke create proc maxmarke @x char(10),@m char(10) output,@n int output as select @m=sno,@n=max(grade) from sc group by sno having sno=@x declare @i char(10),@j int exec maxmarke 200211121, @i output,@j output select @i 学号,@j 最高成绩 4.返回值 返回值是整型值,如果执行成功,返回为0;否则返回为-1到-99之间的随机数,也可以使用return语句指定存储过程的返回值。 【例5】定义一个输入参数和返回值。在本书的数据库中创建一个名为FindStudent的存储过程,查询指定的学生,找到用return语句返回1,否则返回0。 说明:用到的表为Student,学生的信息。 输入参数:学生名称,类型为varchar(20)。 返回值:整数。 create proc FindStudent @x varchar(20) as if exists(select * from student where sname=@x) return 1 else return 0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ declare @result int exec @result=FindStudent 王超 if @result =1 print 找到此人 else prin

文档评论(0)

153****9595 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档