L
lipin
Unregistered / Unconfirmed
GUEST, unregistred user!
客户端如果在事务执行过程中突然掉电,可能引起整个系统无法运行?<br>比如说,在delphi客户端有如下的语句:<br>begin tran<br>try<br> update 系统参数表 set 当前收据号=当前收据号+1<br> insert 收据表<br> commit tran<br>except<br> rollback tran<br>end.<br>如果客户端正好在运行完update语句后突然掉电,那么会引起问题:sql server执行update语句会给系统参数表加排他锁,这将导致其它客户端的"update 系统参数表 set 当前收据号=当前收据号+1"语句无法执行,整个系统都有可能无法运行。<br>这是不是客户端事务的无法克服的缺点?有没有解决办法?当然,这种情况的概率是极小的。<br>注意是突然断电,我试过,在客户端结束程序和结束进程,sql server都是能检测到的,检测到后将回滚这个事务。突然断电时无法检测到。