T-SQL编程69754.ppt

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

(1) 按位置传递。这种方法是在执行存储过程的语句中直接给出参数的值。当有多个参数时,给出的参数值的顺序与创建存储过程的语句中的参数顺序相一致,即参数传递的顺序就是参数定义的顺序。 即: EXECUTE 借书查询 ‘2002-01’, ‘李小红’ (2) 通过参数名传递。这种方法是在执行存储过程的语句中,使用“参数名=参数值”的形式给出参数值。通过参数名传递参数的好处是,参数可以按任意顺序给出。 EXECUTE 借书查询 @班级=2002-01, @学生姓名=李小红 (3) 使用默认参数值。执行存储过程时,不输入参数传值。 EXECUTE 借书查询 系统在执行存储过程时,自动将默认值“2002-01”传给输入参数@班级,“王大力” 传给输入参数@学生姓名,该执行结果将显示“2002-01”班的学生“王大力”的借书信息。 2) 使用输出参数 通过定义输出参数,可以从存储过程中返回一个或多个值。定义输出参数需要在参数定义后加OUTPUT关键字。具体语法为 @parameter_name data_type[=default] OUTPUT 【例7.44】 创建查询某个学生所借书的到期册数的存储过程。 USE 学生图书借阅管理 GO CREATE PROCEDURE 到期册数 @学生姓名 varchar(20),@到期数 int OUTPUT AS IF NOT EXISTS(SELECT * FROM 学生信息 WHERE 姓名=@学生姓名) BEGIN PRINT 该学生没有办证 RETURN END SELECT @到期数=count(图书编号) FROM 租借信息 JOIN 学生信息 ON 租借信息.借书证号=学生信息.借书证号 WHERE 学生信息.姓名=@学生姓名 AND 还书日期 is null AND datediff(day,借书日期, getdate())30 在程序中调用存储过程时,SQL Server提供了两种传递参数的方法。 (1) 按位置传递参数。 DECLARE @到期册数 int EXEC 到期册数 王大力,@到期册数 OUTPUT SELECT 王大力的到期册数是:,@到期册数 (2) 通过参数名传递。 DECLARE @到期册数 int EXEC 到期册数 @到期数=@到期册数 OUTPUT, @学生姓名= 王大力 SELECT 王大力的到期册数是:, @到期册数 注意:通过参数名接收输出参数值时,输出参数名一定要位于等号的左侧。 4.创建带返回值的存储过程 在存储过程中除了可以返回输出参数之外,还可以有返回值,用来显示存储过程的执行情况。一般情况下,返回值为0表示存储过程运行成功,否则出现异常。 【例7.45】 统计某本图书的被借次数。 USE 学生图书借阅管理 GO CREATE PROC 被借次数 @图书名称 varchar(40) @图书作者 varchar(20), @被借次数 int OUTPUT AS IF @图书名称 IS NULL BEGIN PRINT 请在调用存储过程时输入图书名称! RETURN 1 END IF @图书作者 IS NULL BEGIN PRINT 请在调用存储过程时输入图书作者! RETURN 1 END IF NOT EXISTS(SELECT * FROM 图书信息 WHERE 图书名称=@图书名称 and 作者 like %+@图书作者+%) BEGIN PRINT 请调用存储过程时请输入有效的图书名称和作者! RETURN 2 END SELECT @被借次数=COUNT(租借信息.图书编号) FROM 租借信息 JOIN 图书信息 ON 租借信息.图书编号=图书信息.图书编号 WHERE 图书信息.图书名称=@图书名称 and 作者=@图书作者 IF @@ERROR0 BEGIN PRINT 程序没有正常运行,请再试一次! RETURN 3 END RETURN 0 GO 调用存储过程并获得返回值 DECLARE @返回值 int, @次数 int EXEC @返回值=被借次数 物理学, 马文蔚,@次数 OUTPUT IF @返回值=0 SELECT 作者包含马文蔚的《物理学》图书被借次数是:, @次数 ELSE PRINT 存储过程调用失败 5.创建对自身文本以加密形式保存的存储过程 利用WITH ENCRYPTION子

文档评论(0)

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

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

1亿VIP精品文档

相关文档