using (TransactionScope scop = new TransactionScope())
{
foreach(...)
{
//这里循环调用存储过程 存储过程中也有事务
}
scop.Complete();
}
这种嵌套事务结果报错了: EXECUTE 后的事务计数指示缺少了 COMMIT 或 ROLLBACK TRANSACTION 语句。上一计数 = 1,当前计数 = 0
单独执行一条存储过程的话 是没有错误的``
估计是执行存储过程的时候出错了,由于在调用代码中没有对异常的处理所以即使存储过程执行出错了,程序也会继续调用存储过程。
我有碰到过,这种情况,也查了嵌套事物, 其实你只需在每个存储过程中提交你的这个事物即可.
如果你想这几个存储过程用同一个事物,你最好在C#中加上事物即可.
你不是想在不能的存储过程中用一个事物把