Недавно я заметил интересное поведение.
Когда хранимая процедура MS SQL выполнялась с использованием SqlCommand.ExecuteScalar(), мое приложение, похоже, совершенно не знает о каких-либо ошибках SQL или PRINT, которые появляются после выполнения SELECT.
Наиболее вероятным объяснением является то, что управление потоком передается C# сразу после появления любого результата SELECT, не дожидаясь завершения хранимой процедуры (хотя хранимая процедура продолжает выполнение молча внизу).
Очевидным преимуществом является прирост производительности (не нужно ждать, так как результат уже известен), к сожалению, приложение C # не знает о каких-либо исключениях SQL, которые могут произойти после этого момента.
Кто-нибудь может подтвердить мое объяснение? Можно ли изменить это поведение?
ExecuteScalar
. - person Martin Smith   schedule 07.03.2013