在SQL查询中使用'goto‘语句是一种好的做法吗?
发布于 2010-06-15 22:18:43
依赖于SQL -除了GOTO之外,一些方言并没有提供有用的流量控制机制。
GOTO通常是不规范的。
发布于 2011-11-15 13:36:08
不是在生产代码中,而是为了测试可以。
例如,希望为存储过程提供回归测试,其中“公共位”是对正在测试的过程和调试语句的调用。
declare @test int;
set @test = 1;
goto tests
common:
print 'common bit'
tests:
if @test = 1 print '1';
if @test = 2 print '2';
if @test = 3 print '3';
set @test = @test + 1;
if @test <= 3 goto common
print 'finished ' + cast(@test as varchar(5))
go -- goto can not be used past go!作为一个t-sql新手,我希望在范围内声明过程或函数来做“公共比特”,但这是我在谷歌了很多次之后能想到的最好的结果。为什么你必须为你想要重用的每一段代码设置一个存储过程。特别是对于非生产工作。
发布于 2010-06-15 22:19:09
不是的。
与其他语言一样,几乎总是有比Goto更好的选择。
如果您告诉我们您正在使用哪个SQL包,以及您试图完成的任务,我们可能会给您一个确切的想法。
https://stackoverflow.com/questions/3046017
复制相似问题