我的老师最近谈到了在管理工作室中使用的声明' GOTO'但我起初并不是很了解它。他说GOTO被用来跳转到不同的代码片段,借助我自己可以命名的标签。这是他用来代表他的例子的代码:
select 'first'
goto jump
select 'second'
jump:
select 'third'
当我执行代码时,确实会打印出“第一个'和第三个'。我现在的问题是选择的第二个'首先在那里做什么?
答案 0 :(得分:3)
评论时间有点长。
在您的示例中,第二个select
显然是不必要的。
GOTO
是程序代码的“控制流”的一个例子。它是最早的计算机语言的构造,直接映射到处理C或汇编代码等语言时硬件的工作方式。从那时起,它已被包含在许多其他语言中。
GOTO
通常会与IF
一起使用。但是,T-SQL提供了更好的控制流功能,例如:
通常,您应该使用这些结构而不是GOTO
。事实上,GOTO
颇具争议性。许多人认为它始终是代码不良的标志(“意大利面条代码”有时用于描述这种类型的代码)。对于像异常处理(我有时会这样做)或某些类型的状态机这样的事情,其他人会做出非常罕见的例外。
在我看来,GOTO
只应在所有其他结构之后进行教学,并且仅用于非常特定的目的。