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执行,如图中所示:



总之,事务可以回滚到截断操作。