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