假设我们有一个存储过程就像这样:
BEGIN TRANSACTION
UPDATE sometable SET aField = 0 WHERE anotherField = 1;
UPDATE sometable SET aField = 1 WHERE anotherField = 2;
ROLLBACK TRANSACTION;
Run Code Online (Sandbox Code Playgroud)
从C#我们有这样的事情:
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();
}
Run Code Online (Sandbox Code Playgroud)
为什么我没有得到res == -1?我仍然得到受影响的行数.当文档声明"如果发生回滚,返回值也为-1"
我在这里缺少什么?