SQLクエリで「goto」ステートメントを使用するのは良い習慣ですか?
34198 次
5 に答える
11
SQLに依存します-一部の方言は、GOTO以外のフロー制御に役立つメカニズムを提供していません。
GOTOは一般的に悪い形です。
于 2010-06-15T14:18:43.493 に答える
9
本番コードではありませんが、テスト用には問題ありません。
たとえば、「共通ビット」がテスト対象のプロシージャとデバッグ ステートメントの呼び出しであるストアド プロシージャの回帰テストを提供したいとします。
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初心者であるため、プロシージャまたは関数をスコープ内で宣言して「共通ビット」を実行することを望んでいましたが、これは多くのグーグル検索の後に思いついた最高のものでした。再利用したいコードごとにストアド プロシージャをセットアップする必要があるのはなぜですか。特に非生産作業の場合。
于 2011-11-15T05:36:07.853 に答える
3
いいえ。
他の言語と同様に、ほとんどの場合、後藤よりも優れたオプションがあります。
使用しているSQLパッケージと達成しようとしていることを教えていただければ、どれが適切かを正確に把握できる可能性があります。
于 2010-06-15T14:19:09.233 に答える
0
私の推測ではありません。現代語でのgotoステートメントに関する私の一般的なルールは、それらを使用している場合、デザインに何か問題があるということです。
于 2010-06-15T14:19:08.223 に答える