最近、興味深い動作に気付きました。
SqlCommand.ExecuteScalar()を使用して MS SQL ストアド プロシージャを実行すると、アプリケーションはSELECTの実行後に表示される SQL エラーまたは PRINT をまったく認識していないようです。
最も可能性の高い説明は、ストアド プロシージャが終了するのを待たずに、SELECT の結果が表示された直後にフロー制御が C# に渡されることです (ただし、ストアド プロシージャはその下でサイレントに実行を続けます)。
明らかな利点はパフォーマンスの向上です (結果は既にわかっているため、待つ必要はありません)。残念ながら、C# アプリは、その時点以降に発生する可能性のある SQL 例外を認識しません。
誰かが私の説明を確認できますか? この動作を変更できますか?