2011-01-02 19 views
20

単純なIFブロックを持つストアドプロシージャがあるとします。実行されたチェックが基準を満たしている場合は、そのプロシージャを次の実行から停止する必要があります。SQL Serverを使用してストアドプロシージャの実行を停止する方法?

これを行うにはどのような方法が最適ですか?ここで

は、コードは次のとおりです。これで任意の助け

IF EXISTS (<Preform your Check>) 
BEGIN 
    // NEED TO STOP STORED PROCEDURE EXECUTION 
END 
ELSE 
BEGIN 
    INSERT()... 
END 

ありがとう!

答えて

45

ちょうどリターンへ呼び出します

IF EXISTS (<some condition>) 
BEGIN 
    // NEED TO STOP STORED PROCEDURE EXECUTION 
    RETURN 
END 

をこれはすぐに呼び出し元に制御を返します - それは、PROCで他のすべてをスキップします。

+0

チップがありがとうございました。 –

+0

その取引の場合はどうすればいいですか? EXECUTE後のトランザクション数は、BEGIN文とCOMMIT文が一致しないことを示しています。Previous count = 0、current count = 1 " – Muflix

0

SP本体の最後にジャンプラベルを置き、最初のIFステートメントでGOTOを発行します。または、最初のBEGIN ... ENDブロックを拡張して、SP本体の残りの部分全体を含むようにして、条件(IF NOT EXISTS...)を逆にすることができます。

関連する問題