- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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] 其中integer_expression为整型 表达式,其值为RETURN语句的 返回值。当用于存储过程时, RETURN语句不能无返回值。当 调用系统存储过程时,如果返回 值为零表示成功,返回值为非零 表示调用失败。 〖例5-9〗查询某车辆的维修费用,如果在100与2000之间返回1,否则返回2。 USE traffic GO CREATE PROCEDURE wx @bkname AS IF (SELECT 维修费用 FROM cl WHERE车牌号=@bkname) BETWEEN (100,2000) RETURN 1 ELSE RETURN 2 GO 用以下语句调用该存储过程: EXEC wx ‘AX1320’ 返回值可用于程序后续处理。 2、 WAITFOR语句 WAITFOR语句用于指定运 行时间或等待时间,其语法格式 为: WAITFOR{DELAY ‘time’ |TIME ‘time’} 其中DELAY关键字用于指定系 统必须等待的时间,最长可达24 小时,TIME关键字指定系统 等待到某一时刻,time为 datetime数据类型的数据, 但不含有日期部分。 〖例5-9〗设定在早上八点执行存储过程manager。 BEGIN WAITFOR TIME ‘8:00’ EXECUTE sp_addrole ‘manager’ END 运行结果是在早上八点之前, 用户将无法使用与SQL Server 的连接,八点以后才可使用 SQL Server服务器。 UPDATE cl SET 类别=‘大客车’ WHERE 车牌号=‘AT2615’ SAVE TRAN updsav /*保存前面结果*/ DELETE FROM cl WHERE车牌号=‘AT2615’ ROLLBACK TRAN updsav COMMIT TRAN mytran3 GO SELECT 车牌号, 类别, 发
您可能关注的文档
- SQLServer2008数据库应用教程齐志赵晓丹第9章数据库的备份、还原及数据的导入与导出课件教学.ppt
- SQLServer2008数据库应用教程齐志赵晓丹第10章商业智能开发工具课件教学.ppt
- SQLServer程序设计卢奕第1章数据库基础课件教学.ppt
- SQLServer程序设计卢奕第2章数据库建模工具ERwin4课件教学.ppt
- SQLServer程序设计卢奕第3章安装与卸载课件教学.ppt
- SQLServer程序设计卢奕第4章企业管理器与查询分析器课件教学.ppt
- SQLServer程序设计卢奕第5章SQLServer2000的部署课件教学.ppt
- SQLServer程序设计卢奕第6章数据表的创建和编辑课件教学.ppt
- SQLServer程序设计卢奕第7章使用SQL语句操作数据库课件教学.ppt
- SQLServer程序设计卢奕第8章视图和索引课件教学.ppt
文档评论(0)