[英]In what case would the use of a T-SQL GOTO statement be acceptable?
在关于Microsoft T-SQL代码格式的“宗教”讨论中,我质疑GOTO语句是否仍然以T-SQL语法提供。 在使用T-SQL的13年中,我从来没有机会使用它,并且确实不知道它是否存在。 在简要搜索文档后,我确实感到惊讶,确实存在!
我的问题是:
有至少一个情况下 GOTO语句将产生执行总比一个人在使用其他高阶编程结构的解决方案?
我的问题不是 :
我几乎从不使用GOTO
,没有它就可以轻松生活。
我考虑使用它的一种情况是当我有复杂的代码进行大量的错误检查。 我可能想在错误返回时采取一些操作, GOTO
允许我为错误检查定义一个代码块。
您可以通过多种方式解决此问题,但GOTO
是一个合理的选项,可以保证错误得到一致处理,并且代码不会被大量的if @Error = 0 . . .
混乱if @Error = 0 . . .
if @Error = 0 . . .
声明。
我在大型脚本中看到了几次goto,人们用它来提高可读性。 有时它更易读,但大多数情况下变成了意大利面条代码。
我只看到goto可能表现更好的一种情况。 它在多个while循环中。 你可以使用goto一次而不是多次中断 ,它只存在于最里面的循环中。 尽管如此,在我看来,休息并不比goto好多少,它的编程风格都不是很好。
while ...
while ...
while...
break
break
break
while ...
while ...
while...
goto endloops
endloops:
我主要在SSIS不可用时使用GOTO语句(不要问!!)为用于ETL处理的大型存储过程提供一些控制流。 这是我唯一一次使用它们,虽然在这种情况下很有用,但它显然不是你所处的场景。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.