【发布时间】:2015-12-24 13:57:08
【问题描述】:
我的老师最近谈到了要在 Management Studio 中使用的语句“GOTO”,但一开始我不太明白。他表示,借助我可以自己命名的标签,GOTO 被用来跳转到不同的代码段。这是他用来代表他的例子的代码:
select 'first'
goto jump
select 'second'
jump:
select 'third'
当我执行代码时,果然打印出“第一”和“第三”。我现在的问题是,选择的“第二个”首先在那里做什么?
【问题讨论】:
-
GOTO是一种控制查询流程的方法。在实际使用中,GOTO需要满足一个条件(例如:IF SomeCol = 'SomeValue' GOTO jump)。在提供的示例中,SELECT 'second'的唯一用途是说明当您使用GOTO时,会跳过该代码。 -
至于为什么它首先存在,这是一个不好的例子。一个更好的例子是:msdn.microsoft.com/en-us/library/ms180188.aspx 在这种情况下,不是在 if 中嵌入代码,而是使用 goto 来调用代码。如果多个 if 语句可以调用相同的 goto,这具有重构代码以提高可读性的优势;少复制/粘贴。然而,大多数人会用必要的代码创建一个函数/过程并调用它;这就是为什么 GoTo 不是一个受欢迎的选择。
标签: sql sql-server goto