大家好! 请教一个问题
请教一个问题,sql server的事务会不会有这样的情况:
在一个事务中要修改3个数据表,开始事务,修改了一个表,此时恰巧遇到某些意外情况(比如计算机突然断电,或硬件突然故障)导致该事务不能继续执行,还有两个表未能修改,事务无法回滚。
注:排除程序员设计事务代码出错的问题,即前提假设SQL代码设计是完全正确的。
事物未提交之前,你修改的结果是暂时存放在 tempdb 中的,不会修改你实际的表,这时断电或硬件故障,实际的表不会受任何影响。
在硬件丢失或磁盘故障影响到数据库文件后,可以将数据库还原到故障点。先还原上次完整数据库备份和上次差异数据库备份,然后将后续的事务日志备份序列还原到故障点。当还原每个日志备份时,数据库引擎重新应用日志中记录的所有修改,以前滚所有事务。当最后的日志备份还原后,数据库引擎将使用日志信息回滚到该点未完成的所有事务。
http://msdn.microsoft.com/zh-cn/library/ms190925.aspx
不会的