5.1 批处理和事务5.2 局部变量和全局变量5.3 分支和循环流程.ppt

5.1 批处理和事务5.2 局部变量和全局变量5.3 分支和循环流程.ppt

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

BREAK语句和CONTINUE语句 实现循环控制,其语法格式分别 为: BREAK CONTINUE   两条语句中均无选项。其中 BREAK语句的作用为退出循 环,当循环嵌套时,BREAK 退出本层循环到上一层循环。CONTINUE语句的作用为结 束本次循环,开始下一次循环 条件的判断。 〖例5-8〗给实际行程平均在 100公里以上的驾驶员的积分 增加2分,直到所有驾驶员的平均积分大于27为止。 USE traffic GO WHILE (SELECT       AVG(积分) FROM jsy )<27 UPDATE jsy SET 积分=积分+2 WHERE 驾照号 IN ( SELECT 主驾 FROM xc,cd WHERE xc.出车单 号=cd.出车单号 GROUP BY 主驾 HAVING AVG(实际 行程)>100) GO 比较该程序运行前后的积分数据如图5-1。 可以看到,程序所影响的两 行是驾照号为‘002011’ 和‘010113’的两行。 上例中若要求当驾驶员最 大积分超过30,则不再增加 积分,程序可修改为: USE traffic GO WHILE (SELECT AVG(积 分) FROM jsy )<27 BEGIN UPDATE jsy SET 积分=积分 +2 WHERE 驾照号 IN( (SELECT 主驾 FROM xc,cd WHERE xc.出车单号=cd. 出车单号 GROUP BY 主驾 HAVING AVG(实际行 程)>100) IF(SELECT MAX(积分) FROM jsy)<30 CONTINUE ELSE BREAK END GO 3、无条件转移语句 当语句的执行顺序需要实现无条件转移时,使用GOTO语句,其语法格式为: GOTO lable 其中lable为语句标号,可以用 数字或字符表示,用以下形式 定义: label: 语句 使用GOTO语句需要谨慎, 如果程序中过多地出现GOTO语句,会使得程序结 构不够清晰,还可能造成逻 辑上的混乱。 5.4返回和等待流程控制 1、RETURN语句   RETURN语句用于从过程、 批处理或语句块中退出,其语法格 式为: RETURN[integer_expression] UPDATE cl SET 类别=‘大客车’ WHERE 车牌号=‘AT2615’ SAVE TRAN updsav /*保存前面结果*/ DELETE FROM cl WHERE车牌号=‘AT2615’ ROLLBACK TRAN updsav COMMIT TRAN mytran3 GO SELECT 车牌号, 类别, 发动机号, 启用年 代 /*查询修改结果*/ FROM cl   GO 执行结果如图5.3。  (一)局部变量 局部变量是一个可以保存单个 数据值的对象,常用于计数器 记录循环次数,保存运算的中 间结果,保存控制语句所需的 测试值,或保存由存储过 5.2局部变量与全局变量 程返回的数据值以便后续处理 等。局部变量用首字母‘@’为标 识,需要先声明,再引用。   声明局部变量使用DECLARE语句,其语法格式为: DECLARE {@local_varibale data_type}[,.n] 其中local_varibale为局部变量 名,data_type为数据类型,可 一次声明多个局部变量。 局部变量声明后,就可以使用 SET语句或SELECT语句给其赋 值,其语法格式为: SET @local_variable=expression 或 SELECT { @local_variable=expression}[,.n] 其中expression为任何有效的 SQL Server达式,也可为返回单个数据的子查询结果。若子查询无结果,则为NULL。 〖例5-4〗使用变量值查询指定维修费用值的车辆的车牌号、类别和启用年代。 USE traffic DECLARE @myint int SET @myint=20000 SELECT车牌号, 类别, 启用 年代 FROM cl WHERE维修费用=@myint GO   如图5.4 〖例5-5〗用子查询结置 变量值,查询与王明同籍人 员的驾照号和姓名。 USE traffic DECLARE @mychar1 c

文档评论(0)

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

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

1亿VIP精品文档

相关文档