Предполагая, что у нас есть хранимая процедура, которая делает что-то подобное:
BEGIN TRANSACTION
UPDATE sometable SET aField = 0 WHERE anotherField = 1;
UPDATE sometable SET aField = 1 WHERE anotherField = 2;
ROLLBACK TRANSACTION;
И из С# у нас есть что-то вроде этого:
using (var connection = new SqlConnection("connection string"))
{
connection.Open();
var cmd = connection.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "my_procedure";
var res = cmd.ExecuteNonQuery();
}
Почему я не получаю res == -1? Я все еще получаю количество затронутых строк. Когда в документации указано "Если происходит откат, возвращаемое значение равно -1"
Что мне здесь не хватает?