在 GOTO 语法后执行查询

Execute Query After GOTO Syntax

我有一个示例查询,我的问题是如何在触发 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:

You Failed!

Better Luck Next Time

但我想要的是触发后Fail:它也会执行PRINT 'Congratulations'

预期结果:

You Failed!

Better Luck Next Time

Congratulations

如何return到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