У меня есть несколько неприятная проблема.Статус выполнения в INSERT и UPDATE - MS SQL Server
На нижнем уровне: я хочу знать, был ли запрос INSERT или UPDATE в proc успешным или нет. Я не уверен на 100%, если есть статус, который возвращается по всем запросам (кроме SELECT). Я знаю, что SQL Server дает тип возврата для всех сохраненных процессов, и в настоящее время все мои имеют возвращаемый тип Integer.
На среднем уровне: в моем репозитории я хочу использовать Entity Framework для вызова моих сохраненных процессов и возврата статуса как преобразованного (из int) логического из выполнения процесса в мою службу.
На более высоком уровне: Я хочу, чтобы иметь возможность использовать возвращаемое логическое значение из моей службы, чтобы отчитываться перед MVC-контроллером о выполняемой задаче.
На самый важный уровень моего вопроса, у меня есть следующий код:
public virtual ObjectResult<int> Proc_AddApprovalProcessor(string userId, string approverId, int approvalOrder)
{
return ((IObjectContextAdapter)this).ObjectContext.ExecuteStoreQuery<int>(
"EXECUTE [dbo].[Proc_AddApprovalProcessor] @userId, @approverId, @approvalOrder",
new SqlParameter { ParameterName = "userId", Value = userId },
new SqlParameter { ParameterName = "approverId", Value = approverId },
new SqlParameter { ParameterName = "approvalOrder", Value = approvalOrder }).FirstOrDefault();
}
Возможно, стоит упомянуть, что это может ввести в заблуждение, если на столе есть триггеры. –
@Evaldas Buinauskas Вы уверены? Большинство моих операторов update/insert/delete запускают записи в архивных таблицах, и у меня никогда не было проблемы с @@ ROWCOUNT –
Возможно, это относится к более сложным триггерам, но, возможно, вы правы. Этот вопрос, кажется, отвечает, что http://stackoverflow.com/questions/7005225/sql-server-does-trigger-affects-rowcount sory для путаницы :) –