【问题标题】:Execute Query After GOTO Syntax在 GOTO 语法之后执行查询
【发布时间】:2020-01-10 13:52:21
【问题描述】:

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

避免 GOTO。在将 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

【讨论】:

    猜你喜欢
    • 2018-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-09
    • 2014-12-01
    • 2016-09-05
    • 2016-12-28
    • 2023-03-16
    相关资源
    最近更新 更多