欢迎来到天天文库
浏览记录
ID:60789141
大小:27.50 KB
页数:4页
时间:2020-12-18
《SQL循环语句教学教材.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、精品好文档,推荐学习交流在sqlserver数据库中,循环语句是最常用的语句之一,下面就将为您分析SQL循环语句的例子,供您参考,希望对您有所启迪。SQL循环语句declare@iintset@i=1while@i<30begininsertintotest(userid)values(@i)set@i=@i+1end--------------------------while条件begin执行操作set@i=@i+1endWHILE设置重复执行SQL语句或语句块的条件。只要指定的条件为真,就重复执行语句。可以使用BREAK和CONTINUE关键字在循环内部控制WHILE循
2、环中语句的执行。语法WHILEBoolean_expression{sql_statement
3、statement_block}[BREAK]{sql_statement
4、statement_block}[CONTINUE]参数Boolean_expression返回TRUE或FALSE的表达式。如果布尔表达式中含有SELECT语句,必须用圆括号将SELECT语句括起来。{sql_statement
5、statement_block}Transact-SQL语句或用语句块定义的语句分组。若要定义语句块,请使用控制流关键字BEGIN和END。BREAK导致从最内层的WHILE循环
6、中退出。将执行出现在END关键字后面的任何语句,END关键字为循环结束标记。CONTINUE使WHILE循环重新开始执行,忽略CONTINUE关键字后的任何语句。注释如果嵌套了两个或多个WHILE循环,内层的BREAK将导致退出到下一个外层循环。首先运行内层循环结束之后的所有语句,然后下一个外层循环重新开始执行。示例A.在嵌套的IF...ELSE和WHILE中使用BREAK和CONTINUE在下例中,如果平均价格少于$30,WHILE仅供学习与交流,如有侵权请联系网站删除谢谢4精品好文档,推荐学习交流循环就将价格加倍,然后选择最高价。如果最高价少于或等于$50,WHILE循环
7、重新启动并再次将价格加倍。该循环不断地将价格加倍直到最高价格超过$50,然后退出WHILE循环并打印一条消息。USEpubsGOWHILE(SELECTAVG(price)FROMtitles)<$30BEGINUPDATEtitlesSETprice=price*2SELECTMAX(price)FROMtitlesIF(SELECTMAX(price)FROMtitles)>$50BREAKELSECONTINUEENDPRINT'Toomuchforthemarkettobear'B.在带有游标的过程中使用WHILE以下的WHILE结构是名为count_all_rows
8、过程中的一部分。下例中,该WHILE结构测试用于游标的函数@@FETCH_STATUS的返回值。因为@@FETCH_STATUS可能返回–2、-1或0,所以,所有的情况都应进行测试。如果某一行在开始执行此存储过程以后从游标结果中删除,将跳过该行。成功提取(0)后将执行BEGIN...END循环内部的SELECT语句。USEpubsDECLAREtnames_cursorCURSORFORSELECTTABLE_NAMEFROMINFORMATION_SCHEMA.TABLESOPENtnames_cursorDECLARE@tablenamesysname--SET@tabl
9、ename='authors'FETCHNEXTFROMtnames_cursorINTO@tablenameWHILE(@@FETCH_STATUS<>-1)BEGINIF(@@FETCH_STATUS<>-2)BEGINSELECT@tablename=RTRIM(@tablename)EXEC('SELECT'''+@tablename+'''=count(*)FROM'+@tablename)PRINT''ENDFETCHNEXTFROMtnames_cursorINTO@tablenameENDCLOSEtnames_cursorDEALLOCATEtnames_c
10、ursor===================================================仅供学习与交流,如有侵权请联系网站删除谢谢4精品好文档,推荐学习交流可以用变量的形式来增加,不过你的userid三位显然不够,因为你要加10000数据,所以要和authnum形式一样,5位才够下面是一个简单的例子,你可以根据实际需求来改一下。DECLARE@iintDECLARE@strUserIdvarchar(10)DECLARE@strAuthnumvarchar(10)Set@i=0W
此文档下载收益归作者所有