ImageVerifierCode 换一换
格式:DOC , 页数:4 ,大小:45.50KB ,
资源ID:7754362      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-7754362.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(执行存储过程.doc)为本站会员(kpmy5893)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

执行存储过程.doc

1、12.3.3 执行存储过程当需要执行存储过程时,可使用 EXECUTE 或 EXEC 语句。如果存储过程是批处理中的第一条语句,那么不使用 EXECUTE 或 EXEC 关键字也可以执行该存储过程。如果存储过程编写为可以接受参数值,那么可以提供参数值。任务 12.4 问题描述:执行任务 12.3 创建的存储过程 Insertproduct,向产品表中追加一行。解决方案 1:EXEC Insertproduct 8,Konbu, 2 kg box, 24,6.0000, 5,10,0解决方案 2:EXEC Insertproduct 8,Konbu, 2 kg box, 24,6.0000, 5

2、,10解决方案 3:EXEC Insertproduct default,Konbu, 2 kg box, 24,6.0000, 5,10解决方案 4:EXEC Insertproduct ProductName=Konbu,QuantityPerUnit=2 kg box, UnitsInStock=24,UnitPrice=6.0000,UnitsOnOrder=5,ReorderLevel=10解决方案 5:EXEC Insertproduct ReorderLevel=10, UnitsOnOrder=5, UnitsInStock=24,UnitPrice=6.0000, Quant

3、ityPerUnit=2 kg box,ProductName=Konbu分析与讨论:1.如果存储过程含有参数,则在执行存储过程时,必须为这些参数提供值(具有默认值的参数可以不提供值),而且提供的值必须是确定的值,例如方案 1。并且必须按照 CREATE PROCEDURE 语句中存储过程参数给出的顺序提供参数值,以下语句就会发生错误,因为不是按照顺序提供参数值。EXEC Insertproduct Konbu,8,2 kg box, 24,6.0000, 5,10,02.如果存储过程含有默认值参数,则在执行存储过程时,可省略为默认值参数提供值,但其它参数的值不能够省略,必须为这些参数提供值。

4、例如方案 2,没有为Discontinued参数提供值,则在执行存储过程时该参数的值为其默认值 1. 3.虽然可以省略已提供默认值的参数,但只能截断参数列表。例如,如果一个存储过程有八个参数,可以省略第七个和第八个参数,但不能跳过第七个参数而仍然包含第八个参数,除非以 parameter = value 形式提供参数(参见 4)。例如,方案 2 中,CategoryID 参数尽管是有默认值的参数,但由于它是第一个参数,而存储过程第二个参数必须提供值,因此执行存储过程时要为CategoryID 参数提供值,不能省略。如果要使用默认值作为参数的值,则可以使用 DEFAULT 关键字,例如方案 3。

5、如果在存储过程中定义了参数的默认值,那么下列情况下将使用默认值:1)执行存储过程时未指定参数值。2)将 DEFAULT 关键字指定为参数值。4. 执行存储过程时,既可以通过提供在 CREATE PROCEDURE 语句中给定的参数值(如解决方案 1,解决方案 2),来向存储过程参数传递值。也可以通过显式指定参数名称并分配适当的值(使用 parameter = value 的形式),来给存储过程参数传递值。如果使用 parameter = value 的形式,那么可以按任意顺序提供参数,还可以省略那些已提供默认值的所有参数。注意,如果以 parameter = value 形式提供了一个参数,就

6、必须按此种形式提供后面所有的参数。例如解决方案 4 和解决方案 5,执行存储过程时存储过程ProductName 参数的值为 Konbu,QuantityPerUnit 参数的值为2 kg box, UnitsInStock 参数的值为 24,UnitPrice 参数的值为 6.0000,UnitsOnOrder 参数的值为5,ReorderLevel 参数的值为 10,没有提供CategoryID 和Discontinued 参数的值,它们的值为其默认值。执行存储过程时,如果参数名称和存储过程的参数名称不匹配,则这些参数都不会被接受。例如以下代码参数名称ReorderLevelA 和存储过程

7、的参数名称不匹配,则参数ReorderLevelA 不会被接受。EXEC Insertproduct ReorderLevelA=10, UnitsOnOrder=5, UnitsInStock=24,UnitPrice=6.0000, QuantityPerUnit=2 kg box,ProductName=Konbu执行存储过程时,服务器将拒绝所有未包含在存储过程创建期间的参数列表中的参数。注意,在执行存储过程时指定参数名称允许按任意顺序提供参数值。如果未指定参数名称,则必须按照参数在存储过程中定义时的顺序(从左至右)来提供参数值(按照位置传递参数值),并且,如果给某一参数提供了值,则该参

8、数前面的所有参数必须为它们提供值,即使这些参数有默认值(如方案 2)。12.4.1 使用变量、 IF 语句和 RETURN 语句变量用来存储程序在运行过程中可以使用的值,用户可以定义变量,用户定义的变量称为局部变量。IF 语句根据表达式的值选择要执行的语句。IF 语句的一般表示形式为:IF (表达式) BEGIN语句块;ENDIF 语句的执行方式如下:如果表达式的值为 TRUE,则执行语句块,否则语句块不会被执行。语句块可为一条或多条语句,如果句块可为一条语句,可省略 BEGIN、END 。任务 12.6 问题描述: 创建一个存储过程,用参数指定的产品类别 ID 的值查询该类的所有产品,并测试

9、错误,如果存储过程成功执行,则存储过程返回 0,如果执行存储过程时,执行存储过程中的 SQL 语句发生错误,则存储过程返回返回错误号。并创建代码测试该程序过程。解决方案:1)创建 ProductsByCategory1 存储过程CREATE Procedure ProductsByCategory1(CategoryID int)ASDECLARE ErrorSave int;SET ErrorSave = 0;SELECT * FROM ProductsWHERE CategoryID = CategoryIDORDER BY ProductName;IF (ERROR 0 的值为 FALS

10、E,这时不执行 SET ErrorSave = ERROR 语句。如果ERROR 的值不为 0,则条件表达式ERROR 0 的值 TRUE,这时执行 SET ErrorSave = ERROR 语句。该语句将 ERROR 的值赋给变量ErrorSave。6. 使用 BEGIN.END。BEGIN 和 END 用于定义语句块,它们可以用于定义一系列一起执行的 SQL 语句。BEGIN 和 END 语句必须成对使用,任何一个均不能单独使用。BEGIN 语句单独出现在一行中,后跟 SQL 语句块。最后, END 语句单独出现在一行中,指示语句块的结束。BEGIN 和 END 语句块必须至少包含一条

11、SQL 语句。7. RETURN 语句。RETURN 语句无条件从查询、存储过程或批处理中退出。RETURN 语句后面的语句都不执行。RETURN 语句的一般格式为:RETURN integer_expression 其中 integer_expression 为返回的整数值或整型表达式。当在存储过程中使用 RETURN 语句时,此语句可以指定返回给调用程序、批处理或过程的整数值。如果 RETURN 未指定值,则存储过程返回 0。以上 ProductsByCategory1 存储过程中,当执行 RETURN ErrorSave 语句时,退出存储过程,并将ErrorSave 作为存储过程的值返回。8. SQL 语句中可包含存储过程返回的值,但必须以下列格式输入:EXECUTE return_status = 。例如:EXECUTE ReturnStatus =ProductsByCategory1 1;该语句执行存储过程,并将存储过程的返回值赋给变量ReturnStatus。

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报