GOTO语法后执行查询

问题描述 投票:0回答:1

我有一个示例查询,我的问题是触发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之后它将结束。

sql-server goto
1个回答
1
投票

避免转到。在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
© www.soinside.com 2019 - 2024. All rights reserved.