我有一个示例查询,我的问题是触发GOTO
语法后如何执行查询。
这是我的查询:
DECLARE @TotalMaarks INT
SET @TotalMaarks = 49
IF @TotalMaarks >= 50
GOTO Pass
IF @TotalMaarks < 50
GOTO Fail
PRINT ' Congratulations '
Pass:
PRINT ' Congratulations '
PRINT ' You pass the Examination '
RETURN
Fail:
PRINT ' You Failed! '
PRINT ' Better Luck Next Time '
RETURN
GO
该查询的结果将为GOTO Fail:
您失败了!
下次好运
但是我想在触发Fail:
之后也将执行PRINT 'Congratulations'
预期结果:
您失败了!
下次好运
恭喜
如何返回IF
以执行其他剩余查询?
因为Fail
之后它将结束。
避免转到。在TRY / CATCH添加到TSQL之前,它曾经是错误处理所必需的,但是我真的无法想到我会再使用它的情况。几乎每一种使用GOTO的语言都不鼓励使用GOTO,可以追溯到1968年著名的论文Go To Statement Considered Harmful
DECLARE @TotalMaarks INT
SET @TotalMaarks = 49
IF @TotalMaarks >= 50
BEGIN
PRINT ' Congratulations '
PRINT ' You pass the Examination '
END
ELSE IF @TotalMaarks < 50
BEGIN
PRINT ' You Failed! '
PRINT ' Better Luck Next Time '
END
PRINT ' Congratulations '
GO