Я унаследовал код, который выглядит следующим образом:
Хранимая процедура UpdateSomeStuff
Update Table1 Set Col1=Para@1
IF @@Error > 0 Goto ERR
Update Table2 Set Col1=Para@2
IF @@Error > 0 Goto ERR
RETURN 0
ERR:
return -1;
Этот sp вызывается ADO.NET в c # следующим образом
try
{
myCommand.ExecuteNonQuery();
}
catch (System.Exception ex)
{
_log.Error(ex);
throw();
}
finally
{
if(myConnection!=null)
{
myConnection.Close();
}
}
Я просто спрашиваю себя: хороша ли деталь IF @@ Error> 0 Goto ERR для чего-нибудь?Если произойдет ошибка, sp все равно вернется, и в вызывающем методе будет обнаружено исключение.
Код вызова не обрабатывает возвращаемые значения 0 и -1.Мой план состоял бы в том, чтобы удалить все Обработки ошибок в Хранимой Процедуре и иметь тот же результат.Я прав или я что-то пропустил?