SQLServer中截断事务回滚操作的方法
我们一般认为截断是一个非回滚操作,它删除表中的所有数据并重置标识列。如果在事务中进行截断操作,则可以回滚。另一方面,它不从日志文件文件中恢复数据。它不记录日志文件中已删除的数据,并且只记录日志中数据页的单元分配。
下面的例子可以解释上面所说的。
复制代码代码如下:使用temp_test_database
-创建临时表
创建表truncatetabel(ID int)
插入truncatetabel(ID)
选择1
联盟的所有
选择2
联盟的所有
选择3
复制代码代码如下:-检查插入的数据
SELECT * FROM truncatetabel
图:
启动事务的执行
复制代码代码如下所示:
启动业务
事务的开始
TRUNCATETABLE truncatetabel
前滚回来检查truncatetable
SELECT * FROM truncatetabel
F5执行,如图中所示:
执行回滚事务
复制代码代码如下:-回滚事务
回滚事务
再次检查表truncatetable
复制代码如下:-回滚后再次检查truncatetable
SELECT * FROM truncatetabel
F5执行,如图中所示:
总之,事务可以回滚到截断操作。