【发布时间】:2011-01-07 08:33:56
【问题描述】:
我得到以下 sql 异常: 事务与另一个进程在锁资源上死锁,并已被选为死锁牺牲品。重新运行事务。在批处理结束时检测到不可提交的事务。事务被回滚。 我在任何存储过程中都没有任何事务,我从 .net 进行事务处理,我总是使用 using 调用它们。 你们以前遇到过这种情况吗?
【问题讨论】:
标签: c# .net sql-server transactions
我得到以下 sql 异常: 事务与另一个进程在锁资源上死锁,并已被选为死锁牺牲品。重新运行事务。在批处理结束时检测到不可提交的事务。事务被回滚。 我在任何存储过程中都没有任何事务,我从 .net 进行事务处理,我总是使用 using 调用它们。 你们以前遇到过这种情况吗?
【问题讨论】:
标签: c# .net sql-server transactions
事务就是事务,无论从哪里开始。无论是在 c# 中还是在 RDBMS 中。
您的using 有效地发出BEGIN TRANSCATION。
MSDN (for SQL Server 2000 but still valid)建议你在检测到死锁时自动重试,而不是在这里写代码,谷歌上有很多结果供你细读。
【讨论】:
使用事务时需要小心,因为默认情况下它将隔离级别设置为可序列化。当连接释放回池中时,它仍将设置该级别。这会严重损害并发性。
【讨论】: