sql死锁和事物回滚问题-死锁事物

沈万三十三 02-15 18:24:59 150

事务是会串行化的,一般不会发生死锁,并且程序自己是不能知道自己死锁的

要在逻辑上避免死锁发生的,这才是最重
如果要在过程里是不是死锁的牺
begin tran
begin try
执行语句
end try
begin catch
执生错误后的处理
rollback tran
end catch
commit tran

死锁在数据库事务处理期内,是很难判断死锁的。至于在解锁后是否回滚,则与你的事务定义的逻辑关系有关,如果你的语句逻辑严谨的人工解除死锁后,数据库能够自动回滚。
避免数据库死锁的最好办法是在关键处理语句部分使用事制,并且在编写调用程序时(如C#、VB等),进行严密的判断,尽量避免各种可语句冲突。而不是通过存储过程来解决。