2017-11-30 14 views
0

整数パラメータを(@truncate)に渡すストアドプロシージャがあります。 私が欲しいのはこれです。SQL Server:ストアドプロシージャの場合

if @truncate = 1 
then 
    truncate some_table 
    do something else 
else 
    do only the "do something else" (before the else) without truncating the table.. 

コードの「何かをやる」の部分はかなり長いです..私は「何かをやる」のコードを繰り返し、必要以上のストアドプロシージャを作成せずにこれをどのように行うのですか?

+0

ロジックが正常に動作します。本当に短くしたい場合は、「何か他の操作をする」ために別のストア・プロシージャを作成し、このストアド・プロシージャでストアド・プロシージャを呼び出すことができます。 –

答えて

4

私が正しく理解していれば、切り捨てをカバーするのにIFが必要で、他のロジックは常に実行する必要があります。したがって、ELSEの条件を削除し、そのロジックをIFの後に置きます。

if @truncate = 1 
begin 
    truncate some_table 
end 

do something else -- always do this 
+0

私は最初のステートメントが実行されていない場合、ストアドプロシージャが "何かを実行する"ことをOPが望んでいると思います。 –

+2

@CookieMonster私は同意しません。 OPは、現在2つの場所に現れる大きなコードの繰り返しを避けたいと考えているようです。 –

+0

ああ..アーロンからの編集で..これは治療をする..私はそれを見ることができませんでした..ありがとう – Harry

関連する問題