SQLServer学习笔记(7)控制流

这篇博客详细介绍了SQLServer中的控制流语句,包括BEGIN...END用于定义语句组,BREAK和CONTINUE控制循环执行,GOTO进行流程跳转,IF...ELSE实现条件判断,RETURN无条件退出,WHILE实现循环,WAITFOR进行延迟执行,并简要提及了异常处理的TRY...CATCH和THROW语句。
摘要由CSDN通过智能技术生成

BEGIN...END

用于定义一组一起执行的 Transact-SQL 语句,多见于IF...ELSE条件控制和WHILE循环控制


BREAK

退出 WHILE 循环内部的 WHILE 语句或 IF ELSE 语句最里面的循环

示例:

-- Uses AdventureWorks  

WHILE ((SELECT AVG(ListPrice) FROM dbo.DimProduct) < $300)  
BEGIN  
    UPDATE DimProduct  
        SET ListPrice = ListPrice * 2;  
     IF ((SELECT MAX(ListPrice) FROM dbo.DimProduct) > $500)  
         BREAK;  
END

CONTINUE

重新开始 WHILE 循环


GOTO

将执行流更改到标签处。 跳过 GOTO 后面的 Transact-SQL 语句,并从标签位置继续处理。 GOTO 语句和标签可在过程、批处理或语句块中的任何位置使用

* GOTO语句可以潜嵌套

* GOTO 分支可跳转到定义在 GOTO 之前或之后的标签

* GOTO 语句的权限默认情况下授予任何有效用户

语法:

Define the label:   
label:   
Alter the execution:  
GOTO label

示例:

DECLARE @Counter int;  
SET @Counter = 1;  
WHILE @Counter < 10  
BEGIN   
    SELECT @Counter  
    SET @Counter = @Counter + 1  
    IF @Counter = 4 GOTO Branch_One --Jumps to the first branch.  
    IF @Counter = 5 GOTO Branch_Two  --This will never execute.  
END  
Branch_One:  
    SELECT 'Jumping To Branch One.'  
    GOTO Branch_Three; --This will prevent Branch_Two from executing.  
Branch_Two:  
    SELECT 'Jumping To Branch Two.'  
Branch_Three:  
    SELECT '
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值