SQLServer:在事务中回滚TRUNCATE操作
我们⼀般都认为TRUNCATE是⼀种不可回滚的操作,它会删除表中的所有数据以及重置Identity列。
如果你在事务中进⾏TRUNCATE操作,就能回滚。反之,它就不会从⽇志⽂件⽂件恢复数据。它不会在⽇志⽂件中记录删除的那些数据,它只在⽇志中记录数据页的单元分配。
下⾯的例⼦就能解释上⾯的所说的.
temp_test_database
--创建⼀个临时表
TruncateTabel(ID )
TruncateTabel(ID)
1
2
3
--检查插⼊的数据
* TruncateTabel
如图:
开始执⾏事务
--开始事务
TruncateTabel
--回滚之前检查TruncateTable
* TruncateTabel
truncated 带whereF5执⾏,如图:
执⾏回滚事务
--回滚事务
再次检查表TruncateTable
--回滚之后再次检查TruncateTable
* TruncateTabel
F5执⾏,如图:
参考:
--EOF--
Author:兴百放
Web:
Time:2010.3.12
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论